C# 如果我使用自己的数据库进行安全保护,那么在SimpleMembershipInitializer中自动创建表的目的是什么?
我正在尝试将SimpleMembership用于我自己的数据库,该数据库已包含所有用户/角色等 为此,我将C# 如果我使用自己的数据库进行安全保护,那么在SimpleMembershipInitializer中自动创建表的目的是什么?,c#,asp.net-mvc,security,asp.net-mvc-4,simplemembership,C#,Asp.net Mvc,Security,Asp.net Mvc 4,Simplemembership,我正在尝试将SimpleMembership用于我自己的数据库,该数据库已包含所有用户/角色等 为此,我将SimpleMembershipInitializer构造函数中的WebSecurity.InitializeDatabaseConnection行更改为指向我自己的表(注意autoCreateTables:true): 然后,我创建了自己的提供者,在这里我覆盖了“ValidateUser”方法 在这一点上,我启动了应用程序,登录,然后注销(这就是我的应用程序创建所需的全部——帐户在别处)。
SimpleMembershipInitializer
构造函数中的WebSecurity.InitializeDatabaseConnection
行更改为指向我自己的表(注意autoCreateTables:true
):
然后,我创建了自己的提供者,在这里我覆盖了“ValidateUser”方法
在这一点上,我启动了应用程序,登录,然后注销(这就是我的应用程序创建所需的全部——帐户在别处)。我查看了我的数据库,创建了以下表格:webpages\u成员、webpages\u OAuthMembership、webpages\u角色、webpages\u用户角色。然而,桌子上什么也没有。我启动了探查器,重复了这个操作,这些表根本就没有被引用过
那么,将autoCreateTables
参数从true
更改为false
安全吗
是的,我读了这个问题,但它并没有回答我的具体问题。基本上,MVC团队希望让人们能够快速启动和运行,而不必做很多新项目附带的平凡的用户/角色设置-概念是,获取数据库,创建某种用户表,让
SimpleMembershipProvider
来处理其余的事情(它太简单了!)
由于您已经开始创建自己的自定义提供程序,因此没有理由拥有这些额外的表,因此,如果数据库中存在您的成员资格表,您可以将
autoCreateTables
设置为false,这是绝对安全的,您可能需要autoCreateTables:false
,这样您就不会意外地破坏现有记录或创建新的不需要的表。
WebSecurity.InitializeDatabaseConnection("NameOfMyConnectionString", "User",
"UserId", "DomainLogin", autoCreateTables: true);