SqlMembershipProvider 类

定义

管理 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

示例

下面的代码示例演示配置为使用 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 标识平台而不是成员身份提供程序。

此类由 MembershipMembershipUser 类用于为使用 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 文件中定义自己的实例。

如果将 属性设置为 passwordCompatModeFramework40,则应用程序可以使用 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 成员资格提供程序是否配置为要求每个用户名具有唯一的电子邮件地址。

方法

ChangePassword(String, String, String)

修改用户密码。

ChangePasswordQuestionAndAnswer(String, String, String, String)

更新 SQL Server 成员资格数据库中用户的密码提示问题和答案。

CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus)

向 SQL Server 成员资格数据库添加一个新用户。

DecryptPassword(Byte[])

对加密的密码进行解密。

(继承自 MembershipProvider)
DeleteUser(String, Boolean)

从 SQL Server 成员资格数据库删除用户的成员资格信息。

EncryptPassword(Byte[])

对密码进行加密。

(继承自 MembershipProvider)
EncryptPassword(Byte[], MembershipPasswordCompatibilityMode)

使用指定的密码兼容性模式对指定密码进行加密。

(继承自 MembershipProvider)
Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FindUsersByEmail(String, Int32, Int32, Int32)

返回成员资格用户集合,这些用户的电子邮件地址字段包含指定的电子邮件地址。

FindUsersByName(String, Int32, Int32, Int32)

获取一个成员资格用户的集合,其中的用户名包含要匹配的指定用户名。

GeneratePassword()

生成长度至少为 14 个字符的随机密码。

GetAllUsers(Int32, Int32, Int32)

获取 SQL Server 成员资格数据库中所有用户的集合。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetNumberOfUsersOnline()

返回当前访问该应用程序的用户数。

GetPassword(String, String)

从 SQL Server 成员资格数据库返回指定用户名的密码。

GetType()

获取当前实例的 Type

(继承自 Object)
GetUser(Object, Boolean)

从数据源获得与指定的唯一标识符关联的成员资格用户的信息,并更新该用户的上次活动日期/时间戳(如果指定)。

GetUser(String, Boolean)

从 SQL Server 成员资格数据库返回用户的信息,并提供更新用户的上次活动日期/时间戳的可选功能。

GetUserNameByEmail(String)

获取与指定电子邮件地址关联的用户名。

Initialize(String, NameValueCollection)

使用 ASP.NET 应用程序配置文件中指定的属性值初始化 SQL Server 成员资格提供程序。 此方法不能直接在代码中使用。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
OnValidatingPassword(ValidatePasswordEventArgs)

如果定义了事件处理程序,则引发 ValidatingPassword 事件。

(继承自 MembershipProvider)
ResetPassword(String, String)

将用户密码重置为自动生成的新密码。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
UnlockUser(String)

清除用户的锁定状态,以便可以验证该成员资格用户。

UpdateUser(MembershipUser)

更新 SQL Server 成员资格数据库中用户的信息。

ValidateUser(String, String)

验证 SQL Server 成员资格数据库中是否存在指定的用户名和密码。

事件

ValidatingPassword

在创建了用户、更改了密码或重置了密码时发生。

(继承自 MembershipProvider)

适用于

另请参阅