关于 ASP.Net MVC4 中 InitializeSimpleMembership class 用法的几个查询

Few queries about InitializeSimpleMembership class usage in ASP.Net MVC4

我是 MVC 的新手。所以我只是用带有互联网模板的 vs2013 创建一个 mvc 项目。我找到了一个名为 InitializeSimpleMembership 的 class。告诉我这个 class.

有什么用

我在这个函数上设置了断点 OnActionExecuting & SimpleMembershipInitializer 并且当我尝试访问任何受保护的页面或者当我点击登录或注册时看到这个函数被调用 link。我需要对此有一些了解 class InitializeSimpleMembership.

这条线在做什么 LazyInitializer.EnsureInitialized(ref _initializer, ref _isInitialized, ref _initializerLock); ?

告诉我下面的例程在做什么

  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.", ex);
                }
            }

我可以理解这一行 context.Database.Exists() 正在尝试检查特定数据库是否存在。它正在尝试检查哪个数据库是否存在?

这条线在做什么 WebSecurity.InitializeDatabaseConnection() ?

指导我需要做什么,因为需要创建简单的会员提供程序 table 并且我可以根据我的数据库验证用户。

告诉我如果我需要添加更多字段然后我需要做什么。 寻找指导。谢谢

SimpleMembership 提供程序已在 ASP.NET MVC 4 中引入。它扩展了核心成员资格和角色提供程序,以便更灵活地在自定义数据库中存储用户信息。

属性 InitializeSimpleMembershipAttribute 负责初始化简单的成员资格提供程序,定义应该使用哪个上下文 class 来处理数据库(UserContext class) .

WebSecurity.InitializeDatabaseConnection 初始化会员系统,通过连接字符串(“DefaultConnection”)指定数据库,table 存储用户配置文件数据的名称(“UserProfile”)以及应该用于登录的字段名称,以便将用户配置文件与会员帐户相匹配。

方法LazyInitializer.EnsureInitialized只是保证简单成员初始化一次。

此属性创建 table 管理由连接字符串指定的数据库中的成员资格所必需的。因此,它为 UserProfile 模型 class 创建了 table,其中包含列“UserId”和“UserName”,并使用“UserId”作为外键与其他自动生成的 tables 需要验证和授权。 AccountController 包含可以在用户配置文件上执行的所有基本操作,并用属性修饰,这样每次用户尝试登录或注册时,简单的成员资格都会自动初始化。

http://weblogs.asp.net/jongalloway/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates