ch07 網(wǎng)站安全與驗(yàn)證_第1頁
ch07 網(wǎng)站安全與驗(yàn)證_第2頁
ch07 網(wǎng)站安全與驗(yàn)證_第3頁
ch07 網(wǎng)站安全與驗(yàn)證_第4頁
ch07 網(wǎng)站安全與驗(yàn)證_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第七章,網(wǎng)站安全與驗(yàn)證,1,網(wǎng)站安全與驗(yàn)證,ASP.NET驗(yàn)證控件 驗(yàn)證組 身份驗(yàn)證和授權(quán) 成員資格管理 登錄控件 角色管理,2,驗(yàn)證控件的注意事項(xiàng),何時(shí)進(jìn)行驗(yàn)證 驗(yàn)證控件始終在服務(wù)器代碼中執(zhí)行輸入檢查。當(dāng)用戶向服務(wù)器提交頁面之后,服務(wù)器將逐個(gè)調(diào)用驗(yàn)證控件來檢查輸入。如果檢測到錯(cuò)誤,則該頁面將自行設(shè)置為無效狀態(tài),以便在代碼運(yùn)行之前測試其有效性。 默認(rèn)情況下啟用客戶端驗(yàn)證。如果要禁用客戶端驗(yàn)證,只要將頁的ClientTarget屬性設(shè)置為“Downlevel”(“Uplevel”是強(qiáng)制客戶端驗(yàn)證): ,3,驗(yàn)證控件的注意事項(xiàng),驗(yàn)證多個(gè)條件 每個(gè)驗(yàn)證控件通常只執(zhí)行一次驗(yàn)證。如需要檢查多個(gè)條件,可以

2、將多個(gè)驗(yàn)證控件附加到頁面上的一個(gè)輸入控件,通過使用邏輯AND運(yùn)算符來解析控件執(zhí)行驗(yàn)證,只有用戶輸入的數(shù)據(jù)通過所有驗(yàn)證才視為有效。 顯示驗(yàn)證錯(cuò)誤 要想獲知頁面上所有驗(yàn)證控件是否通過驗(yàn)證測試,可以使用Page對(duì)象的IsValid屬性來判定,當(dāng)IsValid屬性為True時(shí),表示通過驗(yàn)證,否則表示有錯(cuò)誤。如果驗(yàn)證控件有錯(cuò)誤,錯(cuò)誤信息還可以通過ValidationSummary控件顯示。,4,RequiredFieldValidtor控件,RequiredFieldValidtor控件是一個(gè)用于要求用戶必須輸入數(shù)據(jù)的驗(yàn)證控件。只要用戶在指定的輸入控件中輸入了數(shù)據(jù),不管輸入的是什么數(shù)據(jù),都可以通過這個(gè)驗(yàn)

3、證。,5,【例 71】,6,RequiredFieldValidator屬性,7,RangeValidator控件,范圍驗(yàn)證控件(RangeValidator控件)用于確定用戶輸入的值是否在指定的取值范圍內(nèi)。例如,是否介于兩個(gè)數(shù)字、兩個(gè)日期或字母字符之間。,8,RangeValidator控件的屬性,9,【例 72】,設(shè)置RangeValidator控件屬性,10,CompareValidator控件,比較驗(yàn)證控件(CompareValidator控件)是將用戶輸入到輸入控件的值,與輸入到其他輸入控件的值或常數(shù)值進(jìn)行比較。,11,CompareValidator控件的屬性,12,【例 73】,

4、設(shè)置CompareValidator控件屬性,13,RegularExpressionValidator控件,正則表達(dá)式驗(yàn)證控件(RegularExpressionValidator控件)是檢查輸入控件的值是否匹配正則表達(dá)式定義的模式。這類驗(yàn)證允許檢查可預(yù)知的字符序列,比如電子郵件地址、電話號(hào)碼和郵編中的字符序列。 這是一個(gè)非常靈活的驗(yàn)證控件,使用這個(gè)控件時(shí),只要定義好用于驗(yàn)證的正則表達(dá)式,就可以實(shí)現(xiàn)各種各樣的驗(yàn)證。,14,【例 74】,設(shè)置RegularExpressionValidator控件屬性,15,ValidationSummary控件,驗(yàn)證總結(jié)控件(ValidationSummar

5、y控件)本身沒有驗(yàn)證功能,但是可以集中顯示所有未通過驗(yàn)證的控件的錯(cuò)誤信息。默認(rèn)情況下,每個(gè)驗(yàn)證控件可以通過設(shè)置Text屬性值顯示錯(cuò)誤文本。但如果希望所有驗(yàn)證錯(cuò)誤匯總在一起顯示,就可以利用ValidationSummary控件來實(shí)現(xiàn)。 通過控件的DisplayMode屬性,可設(shè)置錯(cuò)誤信息顯示的方式,可以按列表、項(xiàng)目符號(hào)列表或單個(gè)段落的形式顯示。,16,CustomValidator控件,CustomValidator控件可以為輸入控件提供自定義的驗(yàn)證函數(shù),以檢查用戶輸入是否滿足要求。自定義驗(yàn)證函數(shù)可以在服務(wù)器上或客戶端腳本中執(zhí)行。 對(duì)于服務(wù)器端自定義驗(yàn)證,要將自定義驗(yàn)證放置在驗(yàn)證程序的OnSer

6、verValidate委托中。并為執(zhí)行驗(yàn)證的ServerValidate事件提供一個(gè)處理程序。作為參數(shù)傳遞到該事件處理程序的ServerValidateEventArgs對(duì)象的Value屬性是要驗(yàn)證的值。IsValid屬性是一個(gè)布爾值,用于設(shè)置驗(yàn)證的返回結(jié)果。,17,CustomValidator控件,對(duì)于客戶端自定義驗(yàn)證,首先要添加前面描述的服務(wù)器端驗(yàn)證函數(shù)。然后,將客戶端驗(yàn)證腳本添加到頁面中。 如果使用的是VBScript,該函數(shù)必須采用下面的形式: Sub ValidationFunctionName (source, arguments) 如果使用的是JScript,則該函數(shù)必須采用下

7、面的形式: function ValidationFunctionName (source, arguments),18,【例 76】,設(shè)置CustomValidator控件的以下屬性,19,【例 76】,void CustomValidator1_ServerValidate (object source, ServerValidateEventArgs args) int num; if (int.TryParse (args.Value, out num) args.IsValid = (num % 5 = 0); else args.IsValid = false; void Butt

8、on1_Click (object sender, EventArgs e) if (Page.IsValid) Label1.Text = 網(wǎng)頁是有效的; else Label1.Text = 網(wǎng)頁無效; ,20,驗(yàn)證組,在頁面設(shè)計(jì)時(shí)有時(shí)希望同時(shí)驗(yàn)證幾個(gè)控件,可以將頁面上的驗(yàn)證控件歸為一組,創(chuàng)建一個(gè)驗(yàn)證組,將在一組的所有控件的ValidationGroup屬性設(shè)置為同一個(gè)名稱(字符串)。 在回發(fā)過程中,根據(jù)當(dāng)前驗(yàn)證組中的驗(yàn)證控件來設(shè)置Page類的IsValid屬性。,21,【例 77】, ,22,身份驗(yàn)證和授權(quán),所謂身份驗(yàn)證是指確定用戶身份的行為。對(duì)于身份驗(yàn)證通常是通過讓用戶提供用戶名和密碼

9、的方式實(shí)現(xiàn)。對(duì)于先進(jìn)的系統(tǒng),可能還會(huì)采用證書或其他身份識(shí)別工具來完成。 當(dāng)用戶通過身份驗(yàn)證后,下一步就是授權(quán),即授權(quán)進(jìn)程將確定該身份的用戶是否可以訪問給定資源。 身份驗(yàn)證是根據(jù)用戶提供的憑證識(shí)別用戶的過程。這些憑證與憑證存儲(chǔ)中那些現(xiàn)有的憑證進(jìn)行比較,存儲(chǔ)的性質(zhì)取決于身份驗(yàn)證的類型。,23,身份驗(yàn)證和授權(quán),身份驗(yàn)證的類型寫在web.config文件的元素的mode屬性中: 在ASP.NET 2.0中提供了四種身份驗(yàn)證方式:Windows驗(yàn)證、Passport驗(yàn)證、Forms驗(yàn)證和None驗(yàn)證。多數(shù)情況下,Web應(yīng)用程序都使用Forms驗(yàn)證方式,因此,本節(jié)將重點(diǎn)介紹Forms驗(yàn)證。,24,Wind

10、ows身份驗(yàn)證,Windows身份驗(yàn)證方式就是指將Windows身份驗(yàn)證與IIS身份驗(yàn)證結(jié)合起來確保ASP.NET應(yīng)用程序的安全。默認(rèn)情況下,ASP.NET被配置為使用Windows身份驗(yàn)證模式,該模式將IIS提供的Windows標(biāo)識(shí)應(yīng)用于當(dāng)前應(yīng)用程序的User屬性。它允許通過User屬性來確定由IIS提供的標(biāo)識(shí)。 IIS提供了大量用于用戶標(biāo)識(shí)的身份驗(yàn)證機(jī)制,如匿名身份驗(yàn)證、基本身份驗(yàn)證、Windows域服務(wù)器的簡要式身份驗(yàn)證以及集成Windows驗(yàn)證等。,25,【例 78】,protected void Page_Load(object sender, EventArgs e) Label1

11、.Text = 用戶名 + User.Identity.Name + ; Label2.Text = 驗(yàn)證類型 + User.Identity.AuthenticationType; ,26,Passport身份驗(yàn)證,Passport身份驗(yàn)證是由Microsoft提供的集中身份驗(yàn)證服務(wù),該服務(wù)為成員站點(diǎn)提供單一登錄和核心配置文件服務(wù)。 在ASP.NET應(yīng)用程序中實(shí)現(xiàn)Passport身份驗(yàn)證的步驟如下: 通過.NET Passport網(wǎng)站,可以對(duì).NET Passport SDK進(jìn)行下載、安裝和配置。用戶必須完成注冊表單才能獲得SDK。 在應(yīng)用程序的web.config文件中設(shè)置mode屬性:

12、使用Passport文檔和.NET Passport SDK功能,實(shí)現(xiàn)Passport身份驗(yàn)證和授權(quán)。,27,None身份驗(yàn)證,在None驗(yàn)證方式下,ASP.NET應(yīng)用程序不對(duì)請求進(jìn)行任何附加身份驗(yàn)證。用于匿名用戶和可以提供其自己的身份驗(yàn)證的應(yīng)用程序。,28,Forms身份驗(yàn)證,Forms身份驗(yàn)證提供了一種方法,可以使用用戶創(chuàng)建的登錄窗體驗(yàn)證用戶的用戶名和密碼。用戶利用Forms身份驗(yàn)證方式訪問受保護(hù)頁面的過程如下所示: 用戶請求需要身份驗(yàn)證的頁面(default.aspx); HTTP模塊調(diào)用Forms驗(yàn)證,并檢查身份驗(yàn)證標(biāo)記; 如果沒有發(fā)現(xiàn)身份驗(yàn)證標(biāo)記,則重定向到用戶登錄頁面(login.

13、aspx),使用ReturnUrl將原請求頁面default.aspx的信息放在查詢字符串中。 如果通過身份驗(yàn)證,則重定向到ReturnUrl中指定的原請求頁面。默認(rèn)情況下,身份驗(yàn)證標(biāo)記以Cookie的形式發(fā)出。,29,【例 79】, ,30,【例 79】(login.aspx),用戶名: 不能為空 密碼: 不能為空 ,31,【例 79】(login.aspx),protected void Button1_Click(object sender, EventArgs e) if (FormsAuthentication.Authenticate (name.Text, password.Te

14、xt ) FormsAuthentication.RedirectFromLoginPage (name.Text, true); else Label1.Text = 用戶名和密碼有錯(cuò),請重輸; ,32,【例 79】(default.aspx),protected void Page_Load (object sender, EventArgs e) Label1.Text = 歡迎您 + User.Identity.Name; protected void Button1_Click (object sender, EventArgs e) FormsAuthentication.Sign

15、Out (); Response.Redirect (login.aspx); ,33,用戶授權(quán),用戶授權(quán)是指對(duì)已通過身份驗(yàn)證的用戶授予或拒絕訪問資源的權(quán)限。在ASP.NET中,主要有兩種方式來授予對(duì)給定資源的訪問權(quán)限。 文件授權(quán):文件授權(quán)由FileAuthorizationModule類來實(shí)現(xiàn)。這種授權(quán)方式主要通過系統(tǒng)管理員對(duì)文件權(quán)限的設(shè)定來實(shí)現(xiàn)的。 URL授權(quán):URL授權(quán)由UrlAuthorizationModule類來實(shí)現(xiàn)。它可以顯式地允許或拒絕某個(gè)用戶名或角色對(duì)特定目錄的訪問權(quán)限。,34,用戶授權(quán),allow和deny元素分別表示授予訪問權(quán)限或撤銷訪問權(quán)限,它們都有三個(gè)屬性: user

16、s:標(biāo)識(shí)允許或拒絕訪問資源的用戶。問號(hào)(?)表示匿名用戶(即未經(jīng)身份驗(yàn)證的用戶),星號(hào)(*)表示所有經(jīng)過身份驗(yàn)證的用戶。 roles:標(biāo)識(shí)允許或拒絕訪問資源的角色。 verbs:定義操作中所用的HTTP提交方式。如GET、HEAD和POST。默認(rèn)值為“*”,表示支持所有的HTTP提交方式。,35,成員資格管理,ASP.NET成員資格管理是用來驗(yàn)證和管理Web應(yīng)用程序中的用戶信息。包括驗(yàn)證用戶憑據(jù)、創(chuàng)建和修改用戶以及管理用戶設(shè)置等。通過成員資格,可以使用選擇的數(shù)據(jù)源管理應(yīng)用程序的用戶身份驗(yàn)證,而不需要其他大量代碼來與成員資格數(shù)據(jù)源進(jìn)行通信。 雖然ASP.NET成員資格主要用于ASP.NET Fo

17、rms身份驗(yàn)證,但也可用于ASP.NET應(yīng)用程序中的任何位置。,36,成員資格的功能,ASP.NET成員資格支持下列功能: 創(chuàng)建和管理用戶信息 實(shí)現(xiàn)用戶身份驗(yàn)證 提供對(duì)多種數(shù)據(jù)存儲(chǔ)區(qū)中的成員資格管理 實(shí)現(xiàn)成員資格個(gè)性化設(shè)置和角色管理(授權(quán))系統(tǒng)集成,37,成員資格管理提供程序關(guān)系,38,成員資格管理,若要使用成員資格,要注意以下幾點(diǎn): 存儲(chǔ)成員資格的數(shù)據(jù)存儲(chǔ)區(qū):默認(rèn)情況下,成員資格信息存儲(chǔ)在Microsoft SQL Server數(shù)據(jù)庫中,并由內(nèi)置的成員資格提供程序?qū)崿F(xiàn)數(shù)據(jù)庫訪問。 成員資格提供程序:成員資格提供程序可以在web.config中指定。 Membership類和Membershi

18、pUser類 為成員資格定義用戶帳戶。 將應(yīng)用程序配置為使用Forms身份驗(yàn)證(與Windows或Passport身份驗(yàn)證不同)。,39,成員資格的數(shù)據(jù)存儲(chǔ)區(qū),ASP.NET成員資格的關(guān)鍵是可以在數(shù)據(jù)庫中存儲(chǔ)用戶信息??梢赃x取要存儲(chǔ)的信息和使用的安全策略,ASP.NET負(fù)責(zé)管理用戶數(shù)據(jù)庫包括添加用戶信息,當(dāng)用戶登錄時(shí)驗(yàn)證用戶身份等。這樣可以大量減少自行編寫的復(fù)雜繁瑣的代碼,可以創(chuàng)建一個(gè)安全的站點(diǎn)幾乎不用編寫代碼,工作量減少而且不需擔(dān)心有漏洞和錯(cuò)誤,因?yàn)锳SP.NET成員管理模塊可以很好地完成各項(xiàng)工作。,40,成員資格的數(shù)據(jù)存儲(chǔ)區(qū),但在以下幾種情況下,可以考慮不使用成員資格數(shù)據(jù)存儲(chǔ): 不希望在指

19、定數(shù)據(jù)庫中存儲(chǔ)信息。 需要向下兼容。 希望在非ASP.NET的應(yīng)用程序中管理用戶信息。,41,成員資格提供程序,成員資格提供程序負(fù)責(zé)與數(shù)據(jù)庫之間的交互。如果將應(yīng)用程序配置為使用不同的成員資格提供程序,便可在應(yīng)用程序中切換基礎(chǔ)的成員資格數(shù)據(jù)存儲(chǔ)區(qū),而無需更改任何應(yīng)用程序代碼。還可以通過自定義提供程序來擴(kuò)展成員資格系統(tǒng),這樣可以將成員資格系統(tǒng)鏈接到現(xiàn)有的用戶數(shù)據(jù)。ASP.NET附帶有兩個(gè)成員資格提供程序:一個(gè)使用Microsoft SQL Server作為數(shù)據(jù)源,而另一個(gè)使用Windows Active Directory。,42,MemberShip類常用的屬性,43,SQL Server數(shù)據(jù)庫

20、配置,ASP.NET包括一個(gè)名為Aspnet_regsql.exe的工具,該工具用來安裝SQL Server提供程序所使用的SQL Server數(shù)據(jù)庫。Aspnet_regsql.exe工具默認(rèn)情況位于Web服務(wù)器上的C:WINDOWS Microsoft.NET Framework versionNumber文件夾中。,44,aspnet_regsql命令行常用參數(shù),45,創(chuàng)建用戶帳戶,可以利用CreateUserWizard控件創(chuàng)建用戶,也可以利用網(wǎng)站管理工具(WAT)創(chuàng)建和管理用戶。 啟動(dòng)WAT的方法很簡單。打開一個(gè)Web應(yīng)用程序,單擊菜單中“網(wǎng)站”,選擇“ASP.NET配置”,呈現(xiàn)的窗

21、口就是WAT,46,創(chuàng)建用戶帳戶,使用WAT創(chuàng)建和管理用戶: 首先單擊“選擇身份驗(yàn)證類型”鏈接,將應(yīng)用程序設(shè)置為通過Internet,即使用Forms身份驗(yàn)證模式。 單擊“創(chuàng)建用戶”鏈接,可以在該界面中輸入用戶信息創(chuàng)建新用戶。 在創(chuàng)建幾個(gè)新的用戶后,可以在數(shù)據(jù)庫中的aspnet_Users和aspnet_Membership表中查看到剛才輸入的用戶記錄。,47,Membership類,在ASP.NET應(yīng)用程序中,Membership類用于驗(yàn)證用戶憑據(jù)并管理用戶設(shè)置。Login控件封裝了Membership類,從而提供一種便捷的用戶驗(yàn)證機(jī)制。 Membership類提供的功能可用于: 創(chuàng)建新用戶

22、。 將成員資格信息(用戶名、密碼、電子郵件地址及支持?jǐn)?shù)據(jù))存儲(chǔ)在Microsoft SQL Server或其他類似的數(shù)據(jù)存儲(chǔ)區(qū)。 對(duì)訪問網(wǎng)站的用戶進(jìn)行身份驗(yàn)證。 管理密碼,包括創(chuàng)建、更改、檢索和重置密碼等等。,48,MemberShip類的常用方法,49,MembershipUser類,MembershipUser類用于表示成員資格數(shù)據(jù)存儲(chǔ)區(qū)中的單個(gè)成員資格用戶。該類公開有關(guān)成員資格用戶的信息(如電子郵件地址),并為成員資格用戶提供功能(如更改或重置其密碼的功能)。 它和MemberShip類之間有著密切的聯(lián)系,在MemberShip類中有很多方法會(huì)用到MembershipUser對(duì)象。,50

23、,MembershipUser類的常用方法,51,【例 710】,MembershipUser u; void Page_Load (object sender, EventArgs args) u = Membership.GetUser (User.Identity.Name); if (!IsPostBack) EmailTextBox.Text = u.Email; else Msg.Text = 用戶名為空; ,52,【例 710】,void UpdateEmailButton_OnClick (object sender, EventArgs args) try u.Email =

24、 EmailTextBox.Text; Membership.UpdateUser (u); Msg.Text = 電子郵件地址已被更新; catch (ProviderException e) Msg.Text = e.Message; ,53,【例 711】,void Button1_Click (object sender, EventArgs e) if (Membership.ValidateUser (TextBox1.Text, TextBox2.Text) FormsAuthentication. RedirectFromLoginPage (TextBox1.Text, fa

25、lse); else Label1.Text = 用戶名或密碼無效; ,54,登錄控件,ASP.NET中新增的登錄控件,為開發(fā)人員提供了一個(gè)無需編程的、可靠完整的登錄解決方案。 【例 712】中有3個(gè)登錄控件: Login控件:該控件提供了一個(gè)用戶登錄網(wǎng)站的用戶界面。 LoginView控件:該控件自動(dòng)檢測用戶的身份驗(yàn)證狀態(tài)和角色。根據(jù)用戶身份或角色的不同顯示不同的視圖。 LoginStatus控件:該控件自動(dòng)檢測用戶的身份驗(yàn)證狀態(tài),并顯示適當(dāng)?shù)牡卿?注銷選項(xiàng)。,55,【例 712】,56,Defalt.aspx,Login.aspx,LoginName控件,LoginName控件用來顯示當(dāng)前

26、用戶的名稱。對(duì)于已登錄的用戶如果希望通過某種方式反饋信息,告訴用戶已確認(rèn)其身份,可以使用該控件。 LoginName控件既可以顯示通過表單驗(yàn)證的用戶名,也可以顯示經(jīng)過其他登錄驗(yàn)證的用戶名,如Windows身份驗(yàn)證等。,57,【例 712】 (default.aspx),58,Login控件,Login 控件顯示的是一個(gè)用于執(zhí)行用戶身份驗(yàn)證的用戶界面。包含一個(gè)用戶名文本框、一個(gè)密碼文本框和一個(gè)登錄按鈕。同時(shí)還可以設(shè)置一個(gè)復(fù)選框,該復(fù)選框可以讓用戶選擇是否要服務(wù)器存儲(chǔ)它們的標(biāo)識(shí),以便再次登錄時(shí)自動(dòng)進(jìn)行身份驗(yàn)證。,59,【例 714】, ,60,Login控件樣式屬性,61,【例 715】, ,62

27、,Login控件的重要屬性,63,LoginView控件,用戶分為登錄用戶和匿名用戶,登錄用戶中也定義了不同的角色,對(duì)于不同的用戶或角色,希望可以呈現(xiàn)不同的頁面。使用LoginView控件,就可以向匿名用戶和登錄用戶,以及不同角色的登錄用戶,顯示不同的信息。,64,LoginView控件,LoginView控件的主要任務(wù)就是根據(jù)用戶身份和角色的不同,為不同的用戶/角色顯示不同的網(wǎng)站“視圖”(或者說內(nèi)容模板): AnonymousTemplate屬性:用于向未登錄到網(wǎng)站的用戶(匿名用戶)設(shè)置顯示的視圖。登錄用戶永遠(yuǎn)看不到在此屬性中設(shè)置的視圖。 LoggedInTemplate屬性:用于向登錄到網(wǎng)

28、站,但不屬于RoleGroups屬性中指定的任何角色組中用戶設(shè)置顯示的視圖。 RoleGroups屬性:用于向已登錄且具有特定角色的用戶設(shè)置顯示的視圖。如果用戶是多個(gè)角色的成員,則使用第一個(gè)與該用戶的任意一個(gè)角色相匹配的角色組視圖。如果有多個(gè)視圖與單個(gè)角色相關(guān)聯(lián),則僅使用第一個(gè)定義的視圖。,65,LoginStatus控件,LoginStatus 控件用于檢測用戶的身份驗(yàn)證狀態(tài),有兩種用戶驗(yàn)證狀態(tài): 用戶沒有登錄站點(diǎn),LoginStatus控件顯示登錄鏈接,鏈接到指定的登錄頁; 用戶已登錄站點(diǎn),LoginStatus控件會(huì)顯示注銷鏈接。站點(diǎn)注銷操作會(huì)清除用戶的身份驗(yàn)證狀態(tài),如果在使用Cooki

29、e,該操作還會(huì)清除用戶的客戶端計(jì)算機(jī)中的Cookie。,66,LoginStatus控件,注銷鏈接的注銷行為是由控件屬性LogoutAction決定,LogoutAction屬性包括3個(gè)枚舉值,分別是: Refresh:表示刷新當(dāng)前頁。 Redirect:表示重定向到LogoutPageUrl屬性中定義的頁面,如果LogoutPageUrl屬性值為空,則重定向到Web.config中定義的登錄頁面。 RedirectToLoginPage:表示重定向到Web.config中定義的登錄頁面。,67,【例 716】,68,PasswordRecovery控件,有很多用戶在第一次登錄時(shí)已注冊過了,但

30、當(dāng)再次登錄網(wǎng)站時(shí)可能忘記了自己的密碼。ASP.ENT基于這個(gè)問題,提供了一個(gè)控件,幫助已注冊的用戶找回密碼。這個(gè)控件就是PasswordRecovery控件。 PasswordRecovery控件找回密碼有兩種方式: 一是找回原有密碼。如果成員資格提供程序經(jīng)過配置,對(duì)密碼進(jìn)行加密或以明文方式存儲(chǔ)密碼,就可以向用戶發(fā)送他們選定的密碼。 二是默認(rèn)的情況,ASP.NET采用的是不可逆的加密方法對(duì)密碼進(jìn)行哈希處理,因此密碼是不可恢復(fù)的。這時(shí),應(yīng)用程序會(huì)重置新密碼,將新密碼發(fā)送給用戶。,69,PasswordRecovery的配置屬性,70,PasswordRecovery控件,PasswordReco

31、very控件內(nèi)置了三種視圖: 用戶名視圖:要求丟失密碼的用戶輸入注冊的用戶名。 提示問題視圖:要求用戶輸入提示問題的答案 成功視圖:顯示信息告訴用戶密碼是否恢復(fù)或重置是否成功。 當(dāng)MembershipProvider屬性中定義的成員資格提供程序支持密碼提示問題和答案時(shí),即RequiresUniqueEmail屬性設(shè)置為True時(shí),PasswordRecovery控件才顯示“提示問題”視圖。,71,PasswordRecovery的樣式屬性,72,【例 717】, 登錄 ,73,ChangePassword控件,用戶在應(yīng)用程序中,可能由于各種原因需要更改其網(wǎng)站密碼。ASP.NET 2.0中提供了一個(gè)控件供用戶更改其在登錄網(wǎng)站時(shí)所使用的密碼,這個(gè)控件就是ChangePassword控件。 ChangePassword控件可以執(zhí)行以下操作: 先登錄,提交舊密碼驗(yàn)證身份后,再提交新密碼要求更改密碼。 在未登錄的情況下更改其密碼,即用戶不需登錄,可以直接指定用戶密碼。條件是包含ChangePassword控件的頁面允許匿名訪問并且DisplayUserName屬性設(shè)置為true。,74,ChangePassword的模板控件,75,ChangePassword的樣式屬性,76,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論