如何在MVC4中连接SimpleMembershipProvider
本文关键字:连接 SimpleMembershipProvider MVC4 | 更新日期: 2023-09-27 18:08:38
我们在asp.net mvc4 internet模板中创建了一个customsimplembershipprovider,如下所示
public class MySimpleMembershipProvider : SimpleMembershipProvider {
public override bool RequiresUniqueEmail {
get { return true; }
}
}
但是使用这个似乎是一个谜
- 没有网页。配置条目
- 中没有对SimpleMembershipProvider的引用InitializeSimpleMembershipAttribute或SimpleMembershipInitializer
所以不能在这里更改
所以问题是-在asp.net mvc4中的SimpleMembershipProvider的布线以及如何更改它?
它是在web.config中连接的。你应该在网上有一个条目。如果您使用Internet模板创建它,则如下所示。
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" />
</providers>
</membership>
您需要将成员条目更改为如下内容:
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="MyAssembly.MyNamespace.MySimpleMembershipProvider, MyAssembly" />
</providers>
</membership>
但是创建您自己的从SimpleMembershipProvider继承的提供者可能不是实现您的目标的最佳方式。如本文所示,无需修改提供者即可轻松定制simplemember。您还可以指定将电子邮件用于WebSecurity的身份。InitializeDatabaseConnection方法。我不确定重写RequiresUniqueEmail会给你想要的结果。看看这篇关于从MVC中解耦simplemember的文章。如果采用这种方法,您可以使用EF中的流畅API来确保电子邮件是唯一的。
主注册从这个方法执行:
WebSecurity.InitializeDatabaseConnection
http://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.initializedatabaseconnection%28v=vs.111%29.aspx (编辑)不确定您是否查看了链接,但这是连接名称、表名称和列的地方。这就是为什么它可以在没有网络的情况下工作。默认情况下,简单会员已经启用,你只需要调用这个方法来激活它。
public static void InitializeDatabaseConnection(
string connectionStringName,
string userTableName,
string userIdColumn,
string userNameColumn,
bool autoCreateTables
)
如果你想构建自己的提供商,你仍然需要按照旧的方式注册。此链接可能有所帮助:
http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx