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 身分識別平臺,而不是成員資格提供者。

MembershipUser 類別會使用此 Membership 類別,使用 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 成員資格提供者是否設定為要求每一個使用者名稱具有唯一的電子郵件地址。

方法

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)

適用於

另請參閱