我正在尝试将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个问题,但它没有回答我的具体问题。
答案 0 :(得分:1)
基本上,MVC团队希望让人们能够快速启动和运行,而无需进行全新项目附带的大量普通用户\角色配置 - 概念是,获取数据库,创建某种用户表,让SimpleMembershipProvider
来处理其余的事情(这很简单!)。
由于您已经开始创建自己的自定义提供程序,因此没有理由拥有这些额外的表,因此将autoCreateTables
设置为{{1}绝对安全}}