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,或者您可以在 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 成員資格提供者是否設定為要求每一個使用者名稱具有唯一的電子郵件地址。 |
方法
事件
ValidatingPassword |
當建立使用者、變更密碼或重設密碼時發生。 (繼承來源 MembershipProvider) |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應