membership 的 providers 的 add 元素(ASP.NET 设置架构)

[本文档仅供预览,在以后的发行版中可能会发生更改。包含的空白主题用作占位符。]

向成员资格提供程序集合添加成员资格提供程序实例。

此元素是 .NET Framework 2.0 版中的新元素。

<!-- SqlMembershipProvider syntax -->
<add name="string" 
     type="string" 
     connectionStringName="string"
     applicationName="MyApplication"
     commandTimeout
     description
     enablePasswordRetrieval="false"
     enablePasswordReset="true"
     requiresQuestionAndAnswer="true"
     requiresUniqueEmail="false"
     passwordFormat="Hashed"
     maxInvalidPasswordAttempts="5"
     passwordAttemptWindow="10"
     minRequiredPasswordLength
     minRequiredNonalphanumericCharacters
     passwordStrengthRegularExpression
/>
<!-- ActiveDirectoryMembershipProvider syntax -->
<add 
    name="string" 
    type="string" 
    applicationName
    attributeMapUsername="string" 
    attrbuteMapEmail="string" 
    attributeMapPasswordQuestion="string" 
    attributeMapPasswordAnswer="string" 
    attributeMapFailedPasswordAnswerCount="number" 
    attributeMapFailedPasswordAnswerTime="interval" 
    attributeMapFailedPasswordAnswerLockoutTime="interval" 
    clientSearchTimeout="interval"   
    serverSearchTimeout
    connectionUsername="string" 
    connectionPassword="string" 
    connectionProtection="string" 
    connectionStringName="connection string identifier" 
    enablePasswordReset="true|false" 
    enablePasswordRetrieval="true|false" 
    enableSearchMethods="true|false" 
    requiresQuestionAndAnswer="true|false" 
    maxInvalidPasswordAttempts="number" 
    passwordAttemptWindow="number" 
    commandTimeout="number" 
    description="string" 
    passwordAnswerAttemptLockoutDuration="interval" 
    minRequiredPasswordLength
    minRequiredNonalphanumericCharacters
    passwordStregnthRegularExpression="string" 
    passwordAnswerAttemptLockoutDuration="number" 
    requiresUniqueEmail="true|false" 
/>

特性和元素

以下几节描述了特性、子元素和父元素。

特性

特性

说明

applicationName

可选的 String 特性。

指定在数据源中存储成员资格数据的应用程序名称。 该应用程序名称使得多个 ASP.NET 应用程序能够使用同一个数据库,而不会遇到不同应用程序存在重复用户名的情况。 或者,通过指定相同的应用程序名称,多个 ASP.NET 应用程序还可以使用相同的成员资格信息。

如果未指定 applicationName 特性,则 .NET Framework 附带的成员资格提供程序使用 ApplicationName 属性的 ApplicationVirtualPath 值。

尽管可以为活动提供程序指定该特性,但是提供程序将忽略此值。

attributeMapUsername

仅适用于 ActiveDirectoryMembershipProvider 特性。

可选的 String 特性。

用于定义从 MembershipUser 对象上的 UserName 属性到目录中的 UserName 特性的映射。

默认值为 userPrincipalName

attributeMapEmail

仅适用于 ActiveDirectoryMembershipProvider 特性。

可选的 String 特性。

用于定义从 MembershipUser 对象上的 Email 属性到目录中的 Email 特性的映射。

默认值为“mail”。

attributeMapPasswordQuestion

仅适用于 ActiveDirectoryMembershipProvider。

可选的 String 特性。

用于定义从 MembershipUser 对象上的 PasswordQuestion 属性到目录中的特性的映射。

默认值未定义。 因此,管理员必须显式配置该特性才能使用密码提示问答功能。

attributeMapPasswordAnswer

仅适用于 ActiveDirectoryMembershipProvider。

可选的 String 特性。

用于定义从用户的密码提示问题答案到目录中特性的映射。

默认值未定义。 因此,管理员必须显式配置该特性才能使用密码提示问答功能。

attributeMapFailedPasswordAnswerCount

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Int32 特性。

用于定义目录中的特性,该特性用于跟踪失败的密码提示问题答案尝试。

默认值未定义。 因此,管理员必须显式配置该特性才能使用密码提示问答功能。

attributeMapFailedPasswordAnswerTime

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Interval 特性。

用于定义从 MembershipUser 对象上的属性到目录中特性的映射。

默认值未定义。 因此,如果管理员没有显式地将该特性映射到类属性,则与该属性关联的功能不会尝试设置或获取该值。 这种情况下,在提供程序中实现默认行为。

attributeMapFailedPasswordAnswerLockoutTime

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Interval 特性。

用于定义目录中的特性,该特性用于存储用户帐户由于错误的密码提示问题答案过多而被锁定的时间。

默认值未定义。 因此,管理员必须显式配置该特性才能使用密码提示问答功能。

clientSearchTimeout

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Int32 特性。

使管理员能够在客户端指定 LDAP 查询超时时间。 有关客户端和服务器搜索超时设置如何与目录中查询分页配合使用的信息,请参见有关 Active Directory 提供程序的搜索方法的文档。

serverSearchTimeout

使管理员能够在服务器端指定 LDAP 查询超时时间。 有关客户端和服务器搜索超时设置如何与目录中的查询分页配合使用的信息,请参见有关 Active Directory 提供程序的搜索方法的文档。

commandTimeout

仅适用于 SQL 提供程序。

可选的 Int32 特性。

指定在向成员资格数据源发出的命令超时之前等待的时间(以秒为单位)。 SQL 提供程序在创建 SqlCommand 对象时,将使用该超时属性。 默认情况下 ASP.NET 配置中并未设置该特性。 因此,使用 ADO.NET 的默认值 30 秒。 如果设置了该特性,则 SQL 提供程序对向数据库发出的所有 SQL 命令使用配置的超时值。

默认值为 30(ADO.NET 默认值)。

connectionStringName

必选的 String 特性。

指定在 <connectionStrings> 元素中定义的连接字符串的名称。 指定的连接字符串由要添加的提供程序提供。

connectionUsername

仅适用于 ActiveDirectoryMembershipProvider 特性。

可选的 String 特性。

定义连接到目录时用于身份验证的用户名。 如果指定了该特性,还必须指定 connectionPassword 特性。

请使用此属性替代在提供程序连接到目录时有效的进程帐户或应用程序模拟凭据。

connectionPassword

仅适用于 ActiveDirectoryMembershipProvider 特性。

可选的 String 特性。

定义连接到目录时用于身份验证的密码。 如果指定了该特性,还必须指定 connectionUsername 特性。

请使用此属性替代在提供程序连接到目录时有效的进程帐户或应用程序模拟凭据。

connectionProtection

仅适用于 ActiveDirectoryMembershipProvider。

可选的 String 特性。

定义打开与目录的连接时使用的传输层安全性选项。 此特性可以是 Secure 或 None。

如果是 Secure,则提供程序尝试自动选择最高级别的连接安全性,可用的安全性取决于提供程序连接的目录的类型。 按照以下方式和顺序确定保护级别:

  1. SSL。

    因为 SSL 同时可用于 Active Directory 和 Active Directory 应用程序模式(Ssl 值)。

  2. 如果 SSL 不可用并且提供程序连接到 Active Directory 或 Active Directory 应用程序模式的域连接实例,则使用“加密-签名-密封”(SignAndSeal 值)。

  3. 如果 SSL 和“加密-签名-密封”都不可用,则提供程序引发 ProviderException 异常,表明它未能自动选择指向所配置目录的加密信道。

如果是 None,则需要显式凭据。 如果未提供 connectionUsername 和 connectionPassword 特性,则引发 ProviderException 异常,表明对连接保护使用 None 时不支持使用进程凭据的默认设置。

description

可选的 String 特性。

指定成员资格提供程序实例的说明。

enablePasswordRetrieval

可选的 Boolean 特性。

指定成员资格提供程序实例是否支持密码检索。 如果为 true,则成员资格提供程序实例支持密码检索。

SQL 和 Active Directory 提供程序的默认值均为 false。

不能在 ActiveDirectoryMembershipProvider 的配置文件中将 enablePasswordRetrieval 设置为 true。 此提供程序不允许检索密码。

enablePasswordReset

可选的 Boolean 特性。

指定成员资格提供程序实例是否支持密码重置。 如果为 true,则成员资格提供程序实例支持密码重置。

SQL 提供程序的默认值为 true,而 Active Directory 提供程序的默认值为 false。

enableSearchMethods

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Boolean 特性。

指定面向搜索的 ActiveDirectoryMembershipProvider 方法是否可用。 如果为 true,则面向搜索的 ActiveDirectoryMembershipProvider 方法可用。

默认值为 false。

maxInvalidPasswordAttempts

可选的 Int32 特性。

指定允许的无效密码或无效密码提示问题答案尝试的次数。 当无效尝试的次数达到配置的值时,将锁定该成员资格用户。

默认值为 5。 .

请注意,对于 Active Directory 的提供程序,该特性仅控制无效的密码提示问题答案的尝试次数。 目录引擎自行处理密码锁定。

minRequiredNonalphanumericCharacters

可选的 Int32 特性。

指定有效密码中必须包含的特殊字符的最小数量。 该特性的值不能设置为小于 0、大于 128 或大于 minRequiredPasswordLength 的值。

默认值为 1。

minRequiredPasswordLength

可选的 Int32 特性。

指定密码中必需包含的字符的最小数量。 该特性的值不能设置为小于 0 或大于 128(SQL 提供程序的未编码密码的最大长度)的值。

默认值为 7。

name

必选的 String 特性。

指定提供程序实例的名称。 此值可用于 membership 元素的 defaultProvider 特性,以便将提供程序实例标识为默认成员资格提供程序。 该提供程序的 name 还用于在 Providers 集合中对该提供程序进行索引。

passwordAnswerAttemptLockoutDuration

仅适用于 ActiveDirectoryMembershipProvider。

可选的 Int32 特性。

指定用户帐户在提供了过多的错误密码提示问题答案后被锁定的时间长度(以分钟为单位)。

默认值为 30 分钟。

passwordAttemptWindow

可选的 Int32 特性。

跟踪失败的尝试所用的时间(以分钟为单位)。 每当发生另一次失败时都将重置窗口。 如果达到了允许的无效密码或密码提示问题答案的最大尝试次数,将锁定成员资格用户。

默认值为 10。

passwordFormat

仅适用于 SQL 提供程序。

可选的 String 特性。

MembershipPasswordFormat 值之一,它表明密码在成员资格数据存储区中的存储格式。

默认值为 Hashed。

passwordStrengthRegularExpression

仅适用于 SqlMembershipProvider

可选的 String 特性。

指定用于计算密码的正则表达式。 该特性必须是可用于 Regex 类的正则表达式。

默认值为空字符串 ("")。

requiresQuestionAndAnswer

可选的 Boolean 特性。

指定成员资格提供程序实例是否需要密码提示问题答案才允许进行密码重置和检索。 如果为 true,则成员资格提供程序需要使用密码提示问题答案才能进行密码重置和检索。

SQL 提供程序的默认值为 true,而 Active Directory 提供程序的默认值为 false。

requiresUniqueEmail

可选的 Boolean 特性。

指定存储在运行 Active Directory 的服务器上的电子邮件地址是否必须是唯一的。 如果为 true,则成员资格提供程序实例需要唯一的电子邮件地址。

SQL 提供程序的默认值为 true,而 Active Directory 提供程序的默认值为 false。

type

必选的 String 特性。

指定继承 MembershipProvider 抽象基类的自定义成员资格提供程序的类型名称。 有关使用自定义成员资格提供程序的详细信息,请参阅Implementing a Membership Provider

子元素

无。

父元素

元素

说明

configuration

指定公共语言运行时和 .NET Framework 应用程序使用的每个配置文件中的根元素。

system.web

为 ASP.NET 配置节指定根元素。

membership

为 ASP.NET 成员资格配置应用程序。

providers

为 ASP.NET 成员资格定义一个成员资格提供程序的集合。

备注

有关配置 Active Directory 成员资格提供程序的更多信息,请参见 ActiveDirectoryMembershipProvider

默认配置

下面的默认 add 元素在 .NET Framework 2.0 版的 Machine.config 文件中配置。

  <providers>
    <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="/" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression="" />
  </providers>

示例

下面的代码示例演示如何配置 ASP.NET 应用程序以存储和检索用户信息。 第一个示例演示配置为使用 SQLMembershipProvider 的 ASP.NET 应用程序。

<membership defaultProvider="SqlProvider"
            userIsOnlineTimeWindow="20">
    <providers>
        <add name="SqlProvider"
             type="System.Web.Security.SqlMembershipProvider"
             connectionStringName="SqlServices"
             enablePasswordRetrieval="false"
             enablePasswordReset="true"
             requiresQuestionAndAnswer="true"
             passwordFormat="Hashed"
             applicationName="/" />
    </providers>
</membership>

元素信息

配置节处理程序

System.Web.Configuration.MembershipSection

配置成员

MembershipSection.Providers

可配置的位置

Machine.config

根级别的 Web.config

应用程序级别的 Web.config

要求

Microsoft Internet 信息服务 (IIS) 版本 5.0、5.1 或 6.0

.NET Framework 2.0 版

Microsoft Visual Studio 2005

请参见

任务

How to: Lock ASP.NET Configuration Settings

参考

membership 的 providers 元素(ASP.NET 设置架构)

system.web 元素(ASP.NET 设置架构)

<configuration> 元素

membership 的 providers 的 remove 元素(ASP.NET 设置架构)

membership 的 providers 的 clear 元素(ASP.NET 设置架构)

ActiveDirectoryMembershipProvider

System.Configuration

System.Web.Configuration

概念

ASP.NET Configuration Overview

ASP.NET Server Controls and Browser Capabilities

Securing Configuration

Configuration Inheritance

其他资源

Managing Users Using ASP.NET Membership

ASP.NET Configuration Files

ASP.NET 配置设置

常规配置设置 (ASP.NET)

ASP.NET Configuration API