共用方式為


成員資格提供者的 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 屬性 (Attribute),.NET Framework 包含的成員資格提供者便會使用 ApplicationName 屬性 (Property) 的 ApplicationVirtualPath 值。

儘管這個屬性可以指定做為現用提供者的提供者,提供者卻會忽略此值。

attributeMapUsername

僅適用於 ActiveDirectoryMembershipProvider 屬性。

選擇性 String 屬性。

用來定義從 MembershipUser 物件上的 UserName 屬性 (Property),到目錄內之 UserName 屬性 (Attribute) 的對應。

預設值為 userPrincipalName。

attributeMapEmail

僅適用於 ActiveDirectoryMembershipProvider 屬性。

選擇性 String 屬性。

用來定義從 MembershipUser 物件上的 Email 屬性 (Property),到目錄內之 Email 屬性 (Attribute) 的對應。

預設值為 "mail"。

attributeMapPasswordQuestion

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 String 屬性。

用來定義從 MembershipUser 物件上的 PasswordQuestion 屬性 (Property),到目錄內之屬性 (Attribute) 的對應。

預設未定義。 因此,系統管理員必須明確設定這個屬性,才能使用密碼問題和回應功能。

attributeMapPasswordAnswer

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 String 屬性。

用來定義從使用者的密碼回應到目錄內之屬性的對應。

預設未定義。 因此,系統管理員必須明確設定這個屬性,才能使用密碼問題和回應功能。

attributeMapFailedPasswordAnswerCount

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 Int32 屬性。

用來定義在目錄中追蹤失敗密碼回應嘗試的屬性。

預設未定義。 因此,系統管理員必須明確設定這個屬性,才能使用密碼問題和回應功能。

attributeMapFailedPasswordAnswerTime

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 Interval 屬性。

用來定義從 MembershipUser 物件上的屬性 (Property) 到目錄內之屬性 (Attribute) 的對應。

預設未定義。 因此,如果系統管理員沒有將屬性 (Attribute) 明確對應至類別屬性 (Property),與該屬性關聯的功能就不會嘗試設定或取得此值。 在此情況下,就會在提供者中實作預設的行為。

attributeMapFailedPasswordAnswerLockoutTime

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 Interval 屬性。

用來定義目錄中的屬性,以便儲存由於過多錯誤密碼回應,而將使用者帳戶鎖定的時間。

預設未定義。 因此,系統管理員必須明確設定這個屬性,才能使用密碼問題和回應功能。

clientSearchTimeout

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 Int32 屬性。

允許系統管理員在用戶端指定 LDAP 查詢逾時。 如需用戶端和伺服器搜尋逾時如何配合目錄中的查詢分頁運作的詳細資訊,請參閱 Active Directory 提供者之搜尋方法的文件。

serverSearchTimeout

允許系統管理員在伺服器端指定 LDAP 查詢逾時。 如需用戶端和伺服器搜尋逾時如何配合目錄中的查詢分頁運作的詳細資訊,請參閱 Active Directory 提供者之搜尋方法的文件。

commandTimeout

僅適用於 SQL 提供者。

選擇性 Int32 屬性。

指定發送至成員資格資料來源的命令逾時前經過的秒數。 SQL 提供者在建立 SqlCommand 物件時會使用這項逾時。 依照預設,ASP.NET 組態中未設定這個屬性 (Attribute)。 因此,會使用 30 秒鐘的 ADO.NET 預設值。 如果設定這個屬性,對於所有發出至資料庫的 SQL 命令,SQL 提供者會使用設定的逾時值。

預設為 30 (ADO.NET 預設)。

connectionStringName

必要的 String 屬性。

指定在 <connectionStrings> 項目中已定義之連接字串的名稱。 指定的連接字串會根據加入的提供者決定。

connectionUsername

僅套用至 ActiveDirectoryMembershipProvider 屬性 (Attribute)。

選擇性 String 屬性。

定義使用者名稱,以便在連接至目錄時用於驗證用途。 如果有指定這個屬性,也就必須指定 connectionPassword 屬性。

當提供者連接至目錄時,便會使用此屬性取代作用中的處理序帳戶或應用程式模擬認證。

connectionPassword

僅套用至 ActiveDirectoryMembershipProvider 屬性 (Attribute)。

選擇性 String 屬性。

定義密碼,以便在連接至目錄時用於驗證用途。 如果有指定這個屬性,也就必須指定 connectionUsername 屬性。

當提供者連接至目錄時,便會使用此屬性取代作用中的處理序帳戶或應用程式模擬認證。

connectionProtection

僅套用至 ActiveDirectoryMembershipProvider。

選擇性 String 屬性。

定義對目錄開啟連接時所使用的傳輸層 (Transport Layer) 安全性選項。 這個屬性可以是 Secure 或 None。

如果是 Secure,提供者就會嘗試根據提供者所連接的目錄類型,自動選取可用的最高層級連接安全性。 保護的方法會依下列方式和順序決定:

  1. SSL。

    因為 SSL 在 Active Directory 和 Active Directory 應用程式模式 (Ssl 值) 中都能運作。

  2. 如果無法使用 SSL,而且提供者會連接至 Active Directory 或 Active Directory 應用程式模式的聯結網域執行個體,就會使用加密簽章和封印 (Encrypt-sign-and-seal) (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 屬性。

指定用來評估密碼的規則運算式 (Regular Expression)。 這個屬性必須是能配合 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

指定 Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目 (Root Element)。

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 Information Services (IIS) 5.0、5.1 或 6.0 版

.NET Framework 2.0 版

Microsoft Visual Studio 2005

請參閱

工作

How to: Lock ASP.NET Configuration Settings

參考

成員資格的 providers 項目 (ASP.NET 設定結構描述)

system.web 項目 (ASP.NET 設定結構描述)

<configuration> 項目

成員資格提供者的 remove 項目 (ASP.NET 設定結構描述)

成員資格提供者的 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