SqlMembershipProvider 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
管理 SQL Server 数据库中 ASP.NET 应用程序的成员资格信息存储。
public ref class SqlMembershipProvider : System::Web::Security::MembershipProvider
public class SqlMembershipProvider : System.Web.Security.MembershipProvider
type SqlMembershipProvider = class
inherit MembershipProvider
Public Class SqlMembershipProvider
Inherits MembershipProvider
- 继承
示例
下面的代码示例演示配置为使用 SqlMembershipProvider的 ASP.NET 应用程序的 Web.config 文件。
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<authentication mode="Forms" >
<forms loginUrl="login.aspx"
name=".ASPXFORMSAUTH" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<membership defaultProvider="SqlProvider"
userIsOnlineTimeWindow="15">
<providers>
<add
name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="SqlServices"
applicationName="MyApplication"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10" />
</providers>
</membership>
</system.web>
</configuration>
注解
注意
ASP.NET 成员身份提供程序已被 ASP.NET 标识取代。 强烈建议更新应用以使用 ASP.NET 标识平台而不是成员身份提供程序。
此类由 Membership 和 MembershipUser 类用于为使用 SQL Server 数据库的 ASP.NET 应用程序提供成员资格服务。 不能在没有 SQL Server 的情况下使用 SqlMembershipProvider 。 如果计算机安装了 SQL Server Express 并启用了默认实例名称和用户实例,则 SqlMembershipProvider 对象将在首次运行应用程序时在应用程序的App_Data
目录中创建名为 aspnetdb
的数据库。
若要手动创建数据库,请运行 Aspnet_regsql.exe
文件夹中 %systemroot%\Microsoft.NET\Framework\ versionNumber
的可执行文件,并指定 -A m
选项 (例如 aspnet_regsql.exe -A m
) 。 创建的数据库称为 Aspnetdb。 或者,运行 Aspnet_regsql.exe
以拉取 GUI 配置模式,并选择配置所有 ASP.NET 功能。
如果成员资格提供程序配置了使用集成安全性的连接字符串,则 ASP.NET 应用程序的进程帐户必须有权连接到 SQL Server 数据库。
Machine.config 文件定义一个名为 AspNetSqlMembershipProvider
的默认SqlMembershipProvider实例,该实例连接到本地计算机上的默认 SQL Server Express 实例。 如果使用默认实例名称安装了 SQL Server Express,则可以使用此提供程序实例,也可以在 ASP.NET 应用程序的 Web.config 文件中定义自己的实例。
如果将 属性设置为 passwordCompatMode
Framework40,则应用程序可以使用 ASP.NET 4 中添加的哈希和加密成员资格选项。 但是,如果 属性 passwordCompatMode
设置为 Framework20,则只能使用 ASP.NET 2.0、ASP.NET 3.5 和 ASP.NET 3.5 SP1 中的哈希和加密成员资格选项。 默认值是 Framework20。 有关详细信息,请参阅 MembershipPasswordCompatibilityMode。
构造函数
SqlMembershipProvider() |
初始化 SqlMembershipProvider 类的新实例。 |
属性
ApplicationName |
获取或设置要存储和检索其成员资格信息的应用程序的名称。 |
Description |
获取一条简短的易懂描述,它适合在管理工具或其他用户界面 (UI) 中显示。 (继承自 ProviderBase) |
EnablePasswordReset |
获取一个值,指示 SQL Server 成员资格提供程序是否配置为允许用户重置其密码。 |
EnablePasswordRetrieval |
获取一个值,指示 SQL Server 成员资格提供程序是否配置为允许用户检索其密码。 |
MaxInvalidPasswordAttempts |
获取在锁定成员资格用户之前允许的无效密码或密码答案尝试次数。 |
MinRequiredNonAlphanumericCharacters |
获取有效密码中必须包含的最少特殊字符数。 |
MinRequiredPasswordLength |
获取密码所需的最小长度。 |
Name |
获得一个友好名称,用于在配置过程中引用提供程序。 (继承自 ProviderBase) |
PasswordAttemptWindow |
获取时间长度,在该时间间隔内对提供有效密码或密码答案的连续失败尝试次数进行跟踪。 |
PasswordFormat |
获取一个值,该值指示 SQL Server 成员资格数据库中存储密码的格式。 |
PasswordStrengthRegularExpression |
获取用于计算密码的正则表达式。 |
RequiresQuestionAndAnswer |
获取一个值,指示 SQL Server 成员资格提供程序是否配置为要求用户在进行密码重置和检索时回答密码提示问题。 |
RequiresUniqueEmail |
获取一个值,指示 SQL Server 成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。 |
方法
事件
ValidatingPassword |
在创建了用户、更改了密码或重置了密码时发生。 (继承自 MembershipProvider) |