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 身分識別平臺,而不是成員資格提供者。
和 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,或者您可以在 Web.config 檔案中為 ASP.NET 應用程式定義自己的實例,則可以使用此提供者實例。
如果您將 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) |