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();
我有一个正在使用 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();