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

下載本文檔

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

文檔簡(jiǎn)介

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)用戶(hù)向服務(wù)器提交頁(yè)面之后,服務(wù)器將逐個(gè)調(diào)用驗(yàn)證控件來(lái)檢查輸入。如果檢測(cè)到錯(cuò)誤,則該頁(yè)面將自行設(shè)置為無(wú)效狀態(tài),以便在代碼運(yùn)行之前測(cè)試其有效性。 默認(rèn)情況下啟用客戶(hù)端驗(yàn)證。如果要禁用客戶(hù)端驗(yàn)證,只要將頁(yè)的ClientTarget屬性設(shè)置為“Downlevel”(“Uplevel”是強(qiáng)制客戶(hù)端驗(yàn)證): ,3,驗(yàn)證控件的注意事項(xiàng),驗(yàn)證多個(gè)條件 每個(gè)驗(yàn)證控件通常只執(zhí)行一次驗(yàn)證。如需要檢查多個(gè)條件,可以

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

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

4、設(shè)置CompareValidator控件屬性,13,RegularExpressionValidator控件,正則表達(dá)式驗(yàn)證控件(RegularExpressionValidator控件)是檢查輸入控件的值是否匹配正則表達(dá)式定義的模式。這類(lèi)驗(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控件)本身沒(méi)有驗(yàn)證功能,但是可以集中顯示所有未通過(guò)驗(yàn)證的控件的錯(cuò)誤信息。默認(rèn)情況下,每個(gè)驗(yàn)證控件可以通過(guò)設(shè)置Text屬性值顯示錯(cuò)誤文本。但如果希望所有驗(yàn)證錯(cuò)誤匯總在一起顯示,就可以利用ValidationSummary控件來(lái)實(shí)現(xiàn)。 通過(guò)控件的DisplayMode屬性,可設(shè)置錯(cuò)誤信息顯示的方式,可以按列表、項(xiàng)目符號(hào)列表或單個(gè)段落的形式顯示。,16,CustomValidator控件,CustomValidator控件可以為輸入控件提供自定義的驗(yàn)證函數(shù),以檢查用戶(hù)輸入是否滿(mǎn)足要求。自定義驗(yàn)證函數(shù)可以在服務(wù)器上或客戶(hù)端腳本中執(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ì)于客戶(hù)端自定義驗(yàn)證,首先要添加前面描述的服務(wù)器端驗(yàn)證函數(shù)。然后,將客戶(hù)端驗(yàn)證腳本添加到頁(yè)面中。 如果使用的是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)頁(yè)是有效的; else Label1.Text = 網(wǎng)頁(yè)無(wú)效; ,20,驗(yàn)證組,在頁(yè)面設(shè)計(jì)時(shí)有時(shí)希望同時(shí)驗(yàn)證幾個(gè)控件,可以將頁(yè)面上的驗(yàn)證控件歸為一組,創(chuàng)建一個(gè)驗(yàn)證組,將在一組的所有控件的ValidationGroup屬性設(shè)置為同一個(gè)名稱(chēng)(字符串)。 在回發(fā)過(guò)程中,根據(jù)當(dāng)前驗(yàn)證組中的驗(yàn)證控件來(lái)設(shè)置Page類(lèi)的IsValid屬性。,21,【例 77】, ,22,身份驗(yàn)證和授權(quán),所謂身份驗(yàn)證是指確定用戶(hù)身份的行為。對(duì)于身份驗(yàn)證通常是通過(guò)讓用戶(hù)提供用戶(hù)名和密碼

9、的方式實(shí)現(xiàn)。對(duì)于先進(jìn)的系統(tǒng),可能還會(huì)采用證書(shū)或其他身份識(shí)別工具來(lái)完成。 當(dāng)用戶(hù)通過(guò)身份驗(yàn)證后,下一步就是授權(quán),即授權(quán)進(jìn)程將確定該身份的用戶(hù)是否可以訪問(wèn)給定資源。 身份驗(yàn)證是根據(jù)用戶(hù)提供的憑證識(shí)別用戶(hù)的過(guò)程。這些憑證與憑證存儲(chǔ)中那些現(xiàn)有的憑證進(jìn)行比較,存儲(chǔ)的性質(zhì)取決于身份驗(yàn)證的類(lèi)型。,23,身份驗(yàn)證和授權(quán),身份驗(yàn)證的類(lèi)型寫(xiě)在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é)合起來(lái)確保ASP.NET應(yīng)用程序的安全。默認(rèn)情況下,ASP.NET被配置為使用Windows身份驗(yàn)證模式,該模式將IIS提供的Windows標(biāo)識(shí)應(yīng)用于當(dāng)前應(yīng)用程序的User屬性。它允許通過(guò)User屬性來(lái)確定由IIS提供的標(biāo)識(shí)。 IIS提供了大量用于用戶(hù)標(biāo)識(shí)的身份驗(yàn)證機(jī)制,如匿名身份驗(yàn)證、基本身份驗(yàn)證、Windows域服務(wù)器的簡(jiǎn)要式身份驗(yàn)證以及集成Windows驗(yàn)證等。,25,【例 78】,protected void Page_Load(object sender, EventArgs e) Label1

11、.Text = 用戶(hù)名 + User.Identity.Name + ; Label2.Text = 驗(yàn)證類(lèi)型 + 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)證的步驟如下: 通過(guò).NET Passport網(wǎng)站,可以對(duì).NET Passport SDK進(jìn)行下載、安裝和配置。用戶(hù)必須完成注冊(cè)表單才能獲得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ì)請(qǐng)求進(jìn)行任何附加身份驗(yàn)證。用于匿名用戶(hù)和可以提供其自己的身份驗(yàn)證的應(yīng)用程序。,28,Forms身份驗(yàn)證,Forms身份驗(yàn)證提供了一種方法,可以使用用戶(hù)創(chuàng)建的登錄窗體驗(yàn)證用戶(hù)的用戶(hù)名和密碼。用戶(hù)利用Forms身份驗(yàn)證方式訪問(wèn)受保護(hù)頁(yè)面的過(guò)程如下所示: 用戶(hù)請(qǐng)求需要身份驗(yàn)證的頁(yè)面(default.aspx); HTTP模塊調(diào)用Forms驗(yàn)證,并檢查身份驗(yàn)證標(biāo)記; 如果沒(méi)有發(fā)現(xiàn)身份驗(yàn)證標(biāo)記,則重定向到用戶(hù)登錄頁(yè)面(login.

13、aspx),使用ReturnUrl將原請(qǐng)求頁(yè)面default.aspx的信息放在查詢(xún)字符串中。 如果通過(guò)身份驗(yàn)證,則重定向到ReturnUrl中指定的原請(qǐng)求頁(yè)面。默認(rèn)情況下,身份驗(yàn)證標(biāo)記以Cookie的形式發(fā)出。,29,【例 79】, ,30,【例 79】(login.aspx),用戶(hù)名: 不能為空 密碼: 不能為空 ,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 = 用戶(hù)名和密碼有錯(cuò),請(qǐng)重輸; ,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,用戶(hù)授權(quán),用戶(hù)授權(quán)是指對(duì)已通過(guò)身份驗(yàn)證的用戶(hù)授予或拒絕訪問(wèn)資源的權(quán)限。在ASP.NET中,主要有兩種方式來(lái)授予對(duì)給定資源的訪問(wèn)權(quán)限。 文件授權(quán):文件授權(quán)由FileAuthorizationModule類(lèi)來(lái)實(shí)現(xiàn)。這種授權(quán)方式主要通過(guò)系統(tǒng)管理員對(duì)文件權(quán)限的設(shè)定來(lái)實(shí)現(xiàn)的。 URL授權(quán):URL授權(quán)由UrlAuthorizationModule類(lèi)來(lái)實(shí)現(xiàn)。它可以顯式地允許或拒絕某個(gè)用戶(hù)名或角色對(duì)特定目錄的訪問(wèn)權(quán)限。,34,用戶(hù)授權(quán),allow和deny元素分別表示授予訪問(wèn)權(quán)限或撤銷(xiāo)訪問(wèn)權(quán)限,它們都有三個(gè)屬性: user

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

17、rms身份驗(yàn)證,但也可用于ASP.NET應(yīng)用程序中的任何位置。,36,成員資格的功能,ASP.NET成員資格支持下列功能: 創(chuàng)建和管理用戶(hù)信息 實(shí)現(xiàn)用戶(hù)身份驗(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ù)庫(kù)中,并由內(nèi)置的成員資格提供程序?qū)崿F(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。 成員資格提供程序:成員資格提供程序可以在web.config中指定。 Membership類(lèi)和Membershi

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論