如果我使用自己的数据库进行安全性,那么在Simple Membership Initializer中自动创建表的目的是什么?

时间:2014-03-21 21:23:04

标签: c# asp.net-mvc security asp.net-mvc-4 simplemembership

我正在尝试将SimpleMembership与我自己的数据库一起使用,该数据库已经拥有所有用户/角色/等...

为此,我将WebSecurity.InitializeDatabaseConnection构造函数中的SimpleMembershipInitializer行更改为指向我自己的表格(注意autoCreateTables: true):

WebSecurity.InitializeDatabaseConnection("NameOfMyConnectionString", "User", 
                               "UserId", "DomainLogin", autoCreateTables: true);

然后我创建了自己的提供商,在那里我覆盖了' ValidateUser'方法

此时,我启动了应用程序,登录然后注销(这就是我的应用程序所需的全部 - 帐户创建在其他地方)。我查看了我的数据库,创建了以下表格:webpages_Membership,webpages_OAuthMembership,webpages_Roles,webpages_UsersInRoles。但是,表格中没有任何内容。我启动了Profiler,重复了操作,并没有被引用的那些表。

我可以安全地将autoCreateTables参数从true更改为false吗?

P.S。是的,我看了this个问题,但它没有回答我的具体问题。

1 个答案:

答案 0 :(得分:1)

基本上,MVC团队希望让人们能够快速启动和运行,而无需进行全新项目附带的大量普通用户\角色配置 - 概念是,获取数据库,创建某种用户表,让SimpleMembershipProvider来处理其余的事情(这很简单!)。

由于您已经开始创建自己的自定义提供程序,因此没有理由拥有这些额外的表,因此将autoCreateTables设置为{{1}绝对安全}}