




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程第6章驗(yàn)證控件,為網(wǎng)站把好安全關(guān)ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程6.1客戶端驗(yàn)證和服務(wù)器端驗(yàn)證1)客戶端驗(yàn)證。由用戶的瀏覽器本身進(jìn)行的驗(yàn)證。優(yōu)點(diǎn):快速,減少服務(wù)器壓力;缺點(diǎn):不夠安全。2)服務(wù)器端驗(yàn)證。由服務(wù)器端的程序代碼對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證。優(yōu)點(diǎn):安全;缺點(diǎn):慢,增加服務(wù)器負(fù)擔(dān)。3)現(xiàn)實(shí)中的選擇。同時(shí)采用客戶端驗(yàn)證和服務(wù)器端驗(yàn)證。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程ASP.NET中提供了5個(gè)驗(yàn)證控件和1個(gè)錯(cuò)誤匯總控件ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程除驗(yàn)證匯總控件外,其它的5個(gè)驗(yàn)證控件,均有如下4個(gè)屬性需要設(shè)置。ControlToValidate屬性,要驗(yàn)證的控件的ID。對(duì)于上圖來(lái)說(shuō),就是對(duì)應(yīng)前面的文本框,即TextBox控件的ID名。ErrorMessage屬性,當(dāng)驗(yàn)證的控件無(wú)效時(shí),在自身以及錯(cuò)誤匯總控件中顯示的信息。Text屬性,當(dāng)驗(yàn)證的控件無(wú)效時(shí),自身顯示的驗(yàn)證程序文本。本項(xiàng)若省略則顯示ErrorMessage屬性中信息。Display,驗(yàn)證程序的顯示方式。包括3種選擇:不顯示錯(cuò)誤信息(None);顯示在設(shè)計(jì)時(shí)控件所放置的位置(Static);將錯(cuò)誤信息動(dòng)態(tài)顯示在頁(yè)面上(Dynamic)。默認(rèn)為Static。6.2驗(yàn)證控件的使用ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程1)必需驗(yàn)證控件例如,若該驗(yàn)證控件監(jiān)控的輸入對(duì)象為TextBox控件(ID名為txtName),若用戶未在TextBox控件內(nèi)填寫(xiě)內(nèi)容,則提示信息“姓名不能為空”<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"ControlToValidate="txtName"ErrorMessage="姓名不能為空">默認(rèn)情況下,該控件驗(yàn)證的錯(cuò)誤條件是空字符串("")。也可以更改錯(cuò)誤條件為其他字符串,這時(shí)需要設(shè)置InitialValue屬性的默認(rèn)值。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程2)范圍驗(yàn)證控件
RangeValidator控件用于檢測(cè)用戶輸入的值是否介于兩個(gè)值之間??梢詫?duì)不同類型的值進(jìn)行比較,比如數(shù)字、日期以及字符。RangeValidator控件主要的屬性如下。Type屬性值為要比較的類型MinimumValue屬性值為范圍的最小值MaximumValue屬性值為范圍的最大值A(chǔ)SP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程2)范圍驗(yàn)證控件
例如,要對(duì)年齡的范圍進(jìn)行驗(yàn)證(5歲~200歲之間),應(yīng)將默認(rèn)的String類型更改為Integer類型,MinimumValue屬性設(shè)為5,MaximumValue屬性設(shè)為200。<asp:RangeValidatorID="RangeValidator1"runat="server"ControlToValidate="txtAge"ErrorMessage="年齡不在有效范圍內(nèi)"MaximumValue="200"MinimumValue="5"Type="Integer"></asp:RangeValidator>ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程3)比較驗(yàn)證控件
CompareValidator控件用于將由用戶輸入到輸入控件的值與輸入到其他輸入控件的值或常數(shù)值進(jìn)行比較。幾個(gè)重要的屬性的設(shè)置方法如下。(1)若要將輸入控件與其他輸入控件進(jìn)行比較,則將ControlTovalidate設(shè)置為輸入控件ID,而ControlToCompare屬性設(shè)置為要與之相比較的控件ID。若要使輸入控件與某個(gè)常數(shù)值進(jìn)行比較時(shí),則比較驗(yàn)證控件屬性為:將ControlTovalidate設(shè)置為該輸入控件ID將ValueToCompare屬性設(shè)置與之比較的常數(shù)。類型(Type)屬性用于設(shè)置比較數(shù)據(jù)的類型,只有在同一類型的數(shù)據(jù)之間才能夠進(jìn)行比較。操作符(Operator)屬性用來(lái)指定比較的方法,如等于(Equal,默認(rèn)值)、大于(GreaterThan)、小于(LessThan)等。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程3)比較驗(yàn)證控件
例如,對(duì)注冊(cè)的兩個(gè)密碼框(兩個(gè)TextBox控件的ID分別為txtPassword和txtPassword2)內(nèi)容進(jìn)行比較驗(yàn)證:<asp:CompareValidatorID="CompareValidator1"runat="server"ControlToCompare="txtPassword"ControlToValidate="txtPassword2"ErrorMessage="兩密碼不一致"></asp:CompareValidator>ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程4)正則表達(dá)式驗(yàn)證控件
RegularExpressionValidator控件用來(lái)驗(yàn)證輸入的格式是否匹配某種特定的模式(用正則表達(dá)式來(lái)表示)除設(shè)置前面介紹的幾個(gè)基本屬性外,主要設(shè)置的是ValidationExpression屬性中的正則表達(dá)式ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程4)正則表達(dá)式驗(yàn)證控件
單擊ValidationExpression屬性右側(cè)的省略號(hào)找到了嗎?下方“驗(yàn)證表達(dá)式”中的“天書(shū)”般的一系列符號(hào)即是最終的表達(dá)式!ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程4)正則表達(dá)式驗(yàn)證控件
對(duì)應(yīng)CompareValidator控件的標(biāo)簽代碼為:<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"ControlToValidate="txtEmail"ErrorMessage="格式不正確"ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*“></asp:RegularExpressionValidator>ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(1)文字符號(hào)
最基本的正則表達(dá)式由單個(gè)文字符號(hào)組成。如a,它將匹配字符串中出現(xiàn)的字符“a”。如對(duì)字符串“Jackisaboy”。兩個(gè)“a”將被匹配。類似的,cat會(huì)匹配“Aboutcatsanddogs”中的“cat”。這等于是告訴正則表達(dá)式引擎,找到一個(gè)c,緊跟一個(gè)a,再跟一個(gè)t。正則表達(dá)式引擎缺省是大小寫(xiě)敏感的。除非告訴引擎忽略大小寫(xiě),否則cat不會(huì)匹配“CAt”ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(1)文字符號(hào)
下面文字字符被保留作特殊用途(稱作元字符):
[]\^$.|?*+()若想在正則表達(dá)式中將這些字符只用作普通的文本字符,就需要用反斜杠“\”對(duì)其進(jìn)行轉(zhuǎn)義可以使用特殊字符序列來(lái)代表某些不可顯示的字符:\t代表Tab\r代表回車符\n代表?yè)Q行符ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(2)字符集
字符集是由一對(duì)方括號(hào)“[]”括起來(lái)的字符集合。使用字符集,可以告訴正則表達(dá)式引擎僅僅匹配多個(gè)字符中的一個(gè)。如,使用gr[ae]y匹配gray或grey。但不會(huì)匹配graay或graey若要字符集匹配任何不在方括號(hào)中的字符,就在左方括號(hào)“[”后面緊跟一個(gè)尖括號(hào)“^”。如q[^u]ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(2)字符集
字符集用到“元字符”怎么辦?除這4個(gè)字符(]\^-)需要轉(zhuǎn)義,其他常見(jiàn)的元字符在字符集定義內(nèi)部都是正常字符,直接寫(xiě)即可。例如,要搜索星號(hào)“*”或加號(hào)“+”本身,可以直接用[+*]ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(2)字符集
字符集的簡(jiǎn)寫(xiě)
[0-9]=\d[A-Za-z0-9_]=\w(單詞字符)空格符和Tab符,以及回車換行符\r\n=\s(白字符)取反字符集的簡(jiǎn)寫(xiě):
[^\s]=[\S][^\w]=[\W][^\d]=[\D]ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(3)使用?*或+進(jìn)行重復(fù)
?:告訴引擎匹配前導(dǎo)字符0次或一次;+:告訴引擎匹配前導(dǎo)字符1次或多次;*:告訴引擎匹配前導(dǎo)字符0次或多次。[0-9]+會(huì)匹配837以及222<[A-Za-z][A-Za-z0-9]*>匹配沒(méi)有屬性的HTML標(biāo)簽,“<”以及“>”是文字符號(hào)。第一個(gè)字符集匹配一個(gè)字母,第二個(gè)字符集匹配一個(gè)字母或數(shù)字允許定義對(duì)一個(gè)字符重復(fù)多少次。詞法是:{min,max}。min和max都是非負(fù)整數(shù)。如果逗號(hào)有而max被忽略了,如{min,},則max沒(méi)有限制。如果逗號(hào)和max都被忽略了,則重復(fù)min次。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(4)使用“.”匹配幾乎任意字符
在正則表達(dá)式中,“.”是最常用的符號(hào)之一?!?”匹配一個(gè)單個(gè)的字符而不用關(guān)心被匹配的字符是什么。唯一的例外是換行符。因此,“.”相當(dāng)于字符集[^\n\r]。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(5)字符串開(kāi)始和結(jié)束
“^”匹配一行字符串第一個(gè)字符前的位置。^a將會(huì)匹配字符串“abc”中的a。^b將不會(huì)匹配“abc”中的任何字符。類似的,“$”匹配字符串中最后一個(gè)字符的后面的位置。所以c$匹配“abc”中的c,而不會(huì)匹配“bcd”中的c。在編程語(yǔ)言中校驗(yàn)用戶輸入時(shí),如果想校驗(yàn)用戶的輸入全部為整數(shù),用^\d+$。用戶輸入中,常常會(huì)有多余的前導(dǎo)空格或結(jié)束空格。可以用^\s*和\s*$來(lái)匹配前導(dǎo)空格或結(jié)束空格。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程正則表達(dá)式-(6)選擇符
正則表達(dá)式中“|”表示選擇??梢杂眠x擇符匹配多個(gè)可能的正則表達(dá)式中的一個(gè)。如果你想搜索文字“cat”或“dog”,可以用cat|dog。如果想有更多的選擇,只要擴(kuò)展列表即可,如cat|dog|mouse|fish。選擇符在正則表達(dá)式中具有最低的優(yōu)先級(jí),也就是說(shuō),它告訴引擎要么匹配選擇符左邊的所有表達(dá)式,要么匹配右邊的所有表達(dá)式??梢杂脠A括號(hào)來(lái)限制選擇符的作用范圍。如mouse(cat|dog)fish,這樣告訴正則引擎把(cat|dog)當(dāng)成一個(gè)正則表達(dá)式單位來(lái)處理。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程5)自定義驗(yàn)證控件
如果以上4種驗(yàn)證控件都不是自己所需的驗(yàn)證類型,那么還可以使用CustomValidator控件來(lái)自定義驗(yàn)證。將CustomValidator控件拖入窗體,將ControlToValidate屬性指向被驗(yàn)證對(duì)象在ErrorMessage屬性中填寫(xiě)出現(xiàn)錯(cuò)誤時(shí)顯示的信息雙擊該控件,為該驗(yàn)證控件的ServerValidate
事件編寫(xiě)驗(yàn)證程序。
ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程5)自定義驗(yàn)證控件
例如,只有用戶輸入的帳號(hào)不為“tom”時(shí)才能驗(yàn)證通過(guò),否則提示“此賬號(hào)已被使用,請(qǐng)另選”。
protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgs
args){if(args.Value=="tom")//如果用戶輸入的帳號(hào)為”tom”{
args.IsValid=false;//驗(yàn)證不允許通過(guò)
}else{
args.IsValid=true;//驗(yàn)證通過(guò)
}}
ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程再結(jié)合客戶端驗(yàn)證程序ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程6)驗(yàn)證匯總控件ValidateSummary控件DisplayModeShowSummaryShowMessageBoxASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程在一個(gè)網(wǎng)頁(yè)中通常會(huì)出現(xiàn)幾個(gè)獨(dú)立的輸入部分,它們的作用不同,驗(yàn)證的時(shí)機(jī)也不相同,應(yīng)該分別進(jìn)行驗(yàn)證。
例如,網(wǎng)頁(yè)中即包括用于查詢信息的輸入部分,又包括用戶登錄部分,就屬于這種情況。若不進(jìn)行分組,驗(yàn)證將相互干擾。分組使用控件的ValidationGroup屬性。將查詢信息的輸入框控件、驗(yàn)證控件、按鈕控件的ValidationGroup屬性都設(shè)置成一個(gè)值,如GroupSearch,將用戶登錄部分的輸入框控件、驗(yàn)證控件、按鈕控件的ValidationGroup屬性設(shè)置另外一個(gè)值,如GroupLogin。6.3分組驗(yàn)證ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程【例】ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程本章小結(jié)在網(wǎng)站中,對(duì)輸入數(shù)據(jù)進(jìn)行校驗(yàn)是經(jīng)常需要使用的技術(shù)。在ASP.NET中,各種校驗(yàn)控件雖然驗(yàn)證目的不同,但是使用的方法卻有很多共同點(diǎn),都需要通過(guò)屬性指向被校驗(yàn)的輸入控件,并指定錯(cuò)誤發(fā)生時(shí)提示的語(yǔ)句。其他屬性的設(shè)置則根據(jù)控件的作用不同而有所不同。在這些控件中,除了RequiredFieldValidator控件,其他控件都認(rèn)為空的輸入是允許的,因此,有時(shí)需要將RequiredFieldValidator控件與其他控件結(jié)合一起指向輸入控件,以避免輸入錯(cuò)誤的發(fā)生。對(duì)于同一個(gè)網(wǎng)頁(yè)若存在多組獨(dú)立的驗(yàn)證單元時(shí),可使用分組驗(yàn)證,以便讓它們?cè)诓煌臅r(shí)機(jī)完成自己獨(dú)立的驗(yàn)證工作。ASP.NET動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程1.填空題(1) 要對(duì)年齡進(jìn)行輸入驗(yàn)證,要使用
驗(yàn)證控件。(2) RequiredFieldValidator控件的
屬性用來(lái)記錄當(dāng)驗(yàn)證失敗時(shí),在ValidationSummary控件中顯示的文本。(3) RegularExpressionValidator控件的
屬性用來(lái)規(guī)定驗(yàn)證輸入控件的正則表達(dá)式。(4) 正則表達(dá)式“1(3|5)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 科普器材出售合同范本
- BOD自動(dòng)在線監(jiān)測(cè)儀產(chǎn)業(yè)分析報(bào)告
- 體外診斷產(chǎn)品競(jìng)爭(zhēng)策略分析報(bào)告
- 余土外運(yùn)合同范本
- 廠房中介出售合同范本
- 中級(jí)電工模擬試題+參考答案
- 鹵菜設(shè)備買賣合同范本
- 固定金額合同范本
- 原礦合同范本
- 七年級(jí)下冊(cè)的語(yǔ)文教學(xué)計(jì)劃
- 2023年7月浙江省普通高中學(xué)業(yè)水平考試(學(xué)考)語(yǔ)文試題答案
- 2024年計(jì)算機(jī)軟件水平考試-初級(jí)信息處理技術(shù)員考試近5年真題集錦(頻考類試題)帶答案
- 發(fā)熱病人護(hù)理課件
- 幼兒園中班安全《不動(dòng)手打人》課件
- 遼寧沈陽(yáng)歷年中考語(yǔ)文現(xiàn)代文之說(shuō)明文閱讀11篇(含答案)(2003-2022)
- 【正版授權(quán)】 ISO 7241:2023 EN Hydraulic fluid power - Dimensions and requirements of quick-action couplings
- 勞動(dòng)項(xiàng)目一 剪指甲 教案
- 母嬰護(hù)理培訓(xùn)課件
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)各版本
- 汽車制造企業(yè)物流自動(dòng)化
- 《德伯家的苔絲》
評(píng)論
0/150
提交評(píng)論