加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET简单会员提供者?

发布时间:2020-12-16 03:58:51 所属栏目:asp.Net 来源:网络整理
导读:我打开了Asp.Net Mvc 4 Internet App.模板.我为我的数据库设置连接字符串,如下所示: connectionStrings add name="DefaultConnection" connectionString="Data Source=ALI-PC;Initial Catalog=OsosPlusDb;Persist Security Info=True;User ID=sa;Password=
我打开了Asp.Net Mvc 4 Internet App.模板.我为我的数据库设置连接字符串,如下所示:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=ALI-PC;Initial Catalog=OsosPlusDb;Persist Security Info=True;User ID=sa;Password=sa;" providerName="System.Data.SqlClient" />
</connectionStrings>

我运行项目,单击注册按钮.我创建了一个像这样的新用户:

当我点击注册发布时,我收到此错误:

但是它在数据库中创建了一个新用户并且它没有创建membership_user(成员资格表不包含添加的用户信息):

我找不到有什么问题.有时没有发生错误.

UPDATE

和例外快照:

AcoountModel:

public class UsersContext : DbContext
{
    public UsersContext()
        : base("DefaultConnection")
    {
    }

    public DbSet<UserProfile> UserProfiles { get; set; }
}

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
}

InitializeSimpleMembershipAttribute.cs

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method,AllowMultiple = false,Inherited = true)]
public sealed class InitializeSimpleMembershipAttribute : ActionFilterAttribute
{
    private static SimpleMembershipInitializer _initializer;
    private static object _initializerLock = new object();
    private static bool _isInitialized;

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        // Ensure ASP.NET Simple Membership is initialized only once per app start
        LazyInitializer.EnsureInitialized(ref _initializer,ref _isInitialized,ref _initializerLock);
    }

    private class SimpleMembershipInitializer
    {
        public SimpleMembershipInitializer()
        {
            Database.SetInitializer<UsersContext>(null);

            try
            {
                using (var context = new UsersContext())
                {
                    if (!context.Database.Exists())
                    {
                        // Create the SimpleMembership database without Entity Framework migration schema
                        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
                    }
                }

                WebSecurity.InitializeDatabaseConnection("DefaultConnection","UserProfile","UserId","UserName",autoCreateTables: true);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("The ASP.NET Simple Membership database could not be initialized. For more information,please see http://go.microsoft.com/fwlink/?LinkId=256588",ex);
            }
        }
    }
}

最后的编辑和摘要

问题是字符(“i”).如果我不使用“我”一切都没问题.但是当我使用它时,我得到了那个错误.我该如何解决这个问题.

解决方法

手动创建数据库(不允许您的项目自动创建数据库)
当您在Options下创建数据库集collat??ion到Latin1_General_CI_AS时

要么

如果您在数据库中使用土耳其语字符,则数据库排序规则必须为Turkish_CI_AS,您可以更改列排序规则.请按照步骤操作.

(PS:整理是关于排序,如果你使用土耳其字符,如果你想排序像a,b,c,?,d,e,f,g,h,?,i,..你的数据库整理必须是土耳其语..)

1)右键单击UserName Column,然后单击Modify ..

2)点击整理..

3)并选择Latin1_General ..

单击确定并保存更改.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读