ASP.NET MVC 5 中的成员提供者

ASP.NET Membership Provider in MVC 5

我有一个正在使用 ASP.NET MVC 5 进行的项目,但它需要使用 ASP.NET 成员资格(与身份相反)。

关于如何完成这项工作,我找不到太多 material。我 运行 aspnet_regsql 在我正在使用的数据库中创建了所有必要的表。当我使用 DB-first 时,我用这些表更新了 MVC 应用程序中的模型。所以所需的表在那里。

接下来我应该做什么?

您需要确定所需的成员资格提供商并在 Web.Config 中进行配置。

因此,假设我们使用的是 MS SQL 服务器和 SQL 会员提供程序,您将需要类似于 Web.Config 的 system.web 部分中的以下示例的内容]:

<membership defaultProvider="MembershipProvider" userIsOnlineTimeWindow="15">
  <providers>
    <clear />
    <add name="MembershipProvider" 
          type="System.Web.Security.SqlMembershipProvider"  
          connectionStringName="SqlConnection" 
          applicationName="MyApplication" 
          enablePasswordRetrieval="false" 
          enablePasswordReset="true" 
          requiresQuestionAndAnswer="false" 
          requiresUniqueEmail="true" 
          passwordFormat="Hashed" 
          minRequiredNonalphanumericCharacters="0"  />
  </providers>
</membership>

您需要确保所有设置都符合您的要求,特别是您需要确保在 Web.Config 中声明的连接字符串与为connectionStringName 属性。该连接字符串必须有权访问并指向您使用 aspnet_regsql.

创建的数据库表

从这里开始,它应该只是在 System.Web.Security 命名空间中使用成员资格 类 的情况。例如,控制器操作中使用的以下代码应获取当前登录的用户:

MembershipUser user = Membership.GetUser();