如何在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的布线以及如何更改它?

如何在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