一、與session的不同點(diǎn)
Membership 一般指用微軟的aspnetdb數(shù)據(jù)庫來進(jìn)行身份認(rèn)證
Session是指網(wǎng)站用戶的會話信息
二、Membership 類提供的功能可用于:
1.創(chuàng)建新用戶。
2.將成員資格信息(用戶名、密碼、電子郵件地址及支持?jǐn)?shù)據(jù))存儲在 Microsoft SQL Server 或其他類似的數(shù)據(jù)存儲區(qū)。
3.對訪問網(wǎng)站的用戶進(jìn)行身份驗(yàn)證??梢砸跃幊谭绞綄τ脩暨M(jìn)行身份驗(yàn)證,也可以使用 Login 控件創(chuàng)建一個只需很少代碼或無需代碼的完整的身份驗(yàn)證系統(tǒng)。
4.管理密碼,包括創(chuàng)建、更改、檢索和重置密碼等等??梢赃x擇配置 ASP.NET 成員資格以要求一個密碼提示問題及其答案來對忘記密碼的用戶的密碼重置和檢索請求進(jìn)行身份驗(yàn)證。
雖然 ASP.NET 成員資格是 ASP.NET 中用來進(jìn)行身份驗(yàn)證的獨(dú)立功能,但它可以與 ASP.NET 角色管理集成來為站點(diǎn)提供授權(quán)服務(wù)。成員資格還可以與 ASP.NET 用戶的 System.Web.Profile 集成,以提供可為各個用戶量身訂做的特定于應(yīng)用程序的自定義實(shí)現(xiàn)。有關(guān)詳細(xì)信息,請參見 了解角色管理 和 ASP.NET 配置文件屬性概述。
Membership 類依賴于成員資格提供程序與數(shù)據(jù)源通信。.NET Framework 包括一個 SqlMembershipProvider(將用戶信息存儲在 Microsoft SQL Server 數(shù)據(jù)庫中)和一個 ActiveDirectoryMembershipProvider(允許在 Active Directory 或 Active Directory 應(yīng)用程序模式 (ADAM) 服務(wù)器上存儲用戶信息)。還可以實(shí)現(xiàn)一個自定義成員資格提供程序與可由 Membership 類使用的其他類似的數(shù)據(jù)源進(jìn)行通信。自定義成員資格提供程序?qū)⒗^承 MembershipProvider 抽象類。有關(guān)更多信息,請參見 實(shí)現(xiàn)成員資格提供程序。
默認(rèn)情況下,ASP.NET 成員資格可支持所有 ASP.NET 應(yīng)用程序。默認(rèn)成員資格提供程序?yàn)?SqlMembershipProvider 并在計(jì)算機(jī)配置中以名稱 AspNetSqlProvider 指定。SqlMembershipProvider 的默認(rèn)實(shí)例配置為連接到 Microsoft SQL Server 的一個本地實(shí)例。
可以通過修改默認(rèn)設(shè)置將一個非 AspNetSqlProvider 實(shí)例的 SqlMembershipProvider 指定為默認(rèn)提供程序,或使用 Web.config 文件將自定義提供程序的實(shí)例指定為 ASP.NET 應(yīng)用程序的默認(rèn)提供程序??梢允褂?Web.config 文件中 membership 配置節(jié)來為 Web 應(yīng)用程序指定 ASP.NET 成員資格配置。可以使用 membership 節(jié)的 providers 子節(jié)來指定默認(rèn)提供程序之一以外的成員資格提供程序。例如,下面的 membership 節(jié)從當(dāng)前應(yīng)用程序配置中移除默認(rèn)成員資格提供程序并添加一個名為 SqlProvider 的新提供程序,它連接到名為 MySqlServer 的 SQL Server 實(shí)例。
代碼如下:
<configuration>
<connectionStrings>
<add name="SqlServices" connectionString="Data Source=MySqlServer;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
</connectionStrings>
<system.web>
<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
<providers>
<remove name="AspNetSqlProvider" />
<add name="SqlProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="SqlServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" passwordFormat="Hashed" applicationName="/" />
</providers>
</membership>
</system.web>
</configuration>
在 ASP.NET 應(yīng)用程序中,Membership 類用于驗(yàn)證用戶憑據(jù)并管理用戶設(shè)置(如密碼和電子郵件地址)。Membership 類可以獨(dú)自使用,或者與 FormsAuthentication 一起使用以創(chuàng)建一個完整的 Web 應(yīng)用程序或網(wǎng)站的用戶身份驗(yàn)證系統(tǒng)。Login 控件封裝了 Membership 類,從而提供一種便捷的用戶驗(yàn)證機(jī)制。