Ch06請驗證控件為網(wǎng)站把好安全關_第1頁
Ch06請驗證控件為網(wǎng)站把好安全關_第2頁
Ch06請驗證控件為網(wǎng)站把好安全關_第3頁
Ch06請驗證控件為網(wǎng)站把好安全關_第4頁
Ch06請驗證控件為網(wǎng)站把好安全關_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

ASP.NET動態(tài)網(wǎng)站開發(fā)教程第6章驗證控件,為網(wǎng)站把好安全關ASP.NET動態(tài)網(wǎng)站開發(fā)教程6.1客戶端驗證和服務器端驗證1)客戶端驗證。由用戶的瀏覽器本身進行的驗證。優(yōu)點:快速,減少服務器壓力;缺點:不夠安全。2)服務器端驗證。由服務器端的程序代碼對數(shù)據(jù)進行驗證。優(yōu)點:安全;缺點:慢,增加服務器負擔。3)現(xiàn)實中的選擇。同時采用客戶端驗證和服務器端驗證。ASP.NET動態(tài)網(wǎng)站開發(fā)教程ASP.NET中提供了5個驗證控件和1個錯誤匯總控件ASP.NET動態(tài)網(wǎng)站開發(fā)教程除驗證匯總控件外,其它的5個驗證控件,均有如下4個屬性需要設置。ControlToValidate屬性,要驗證的控件的ID。對于上圖來說,就是對應前面的文本框,即TextBox控件的ID名。ErrorMessage屬性,當驗證的控件無效時,在自身以及錯誤匯總控件中顯示的信息。Text屬性,當驗證的控件無效時,自身顯示的驗證程序文本。本項若省略則顯示ErrorMessage屬性中信息。Display,驗證程序的顯示方式。包括3種選擇:不顯示錯誤信息(None);顯示在設計時控件所放置的位置(Static);將錯誤信息動態(tài)顯示在頁面上(Dynamic)。默認為Static。6.2驗證控件的使用ASP.NET動態(tài)網(wǎng)站開發(fā)教程1)必需驗證控件例如,若該驗證控件監(jiān)控的輸入對象為TextBox控件(ID名為txtName),若用戶未在TextBox控件內(nèi)填寫內(nèi)容,則提示信息“姓名不能為空”<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"ControlToValidate="txtName"ErrorMessage="姓名不能為空">默認情況下,該控件驗證的錯誤條件是空字符串("")。也可以更改錯誤條件為其他字符串,這時需要設置InitialValue屬性的默認值。ASP.NET動態(tài)網(wǎng)站開發(fā)教程2)范圍驗證控件

RangeValidator控件用于檢測用戶輸入的值是否介于兩個值之間??梢詫Σ煌愋偷闹颠M行比較,比如數(shù)字、日期以及字符。RangeValidator控件主要的屬性如下。Type屬性值為要比較的類型MinimumValue屬性值為范圍的最小值MaximumValue屬性值為范圍的最大值ASP.NET動態(tài)網(wǎng)站開發(fā)教程2)范圍驗證控件

例如,要對年齡的范圍進行驗證(5歲~200歲之間),應將默認的String類型更改為Integer類型,MinimumValue屬性設為5,MaximumValue屬性設為200。<asp:RangeValidatorID="RangeValidator1"runat="server"ControlToValidate="txtAge"ErrorMessage="年齡不在有效范圍內(nèi)"MaximumValue="200"MinimumValue="5"Type="Integer"></asp:RangeValidator>ASP.NET動態(tài)網(wǎng)站開發(fā)教程3)比較驗證控件

CompareValidator控件用于將由用戶輸入到輸入控件的值與輸入到其他輸入控件的值或常數(shù)值進行比較。幾個重要的屬性的設置方法如下。(1)若要將輸入控件與其他輸入控件進行比較,則將ControlTovalidate設置為輸入控件ID,而ControlToCompare屬性設置為要與之相比較的控件ID。若要使輸入控件與某個常數(shù)值進行比較時,則比較驗證控件屬性為:將ControlTovalidate設置為該輸入控件ID將ValueToCompare屬性設置與之比較的常數(shù)。類型(Type)屬性用于設置比較數(shù)據(jù)的類型,只有在同一類型的數(shù)據(jù)之間才能夠進行比較。操作符(Operator)屬性用來指定比較的方法,如等于(Equal,默認值)、大于(GreaterThan)、小于(LessThan)等。ASP.NET動態(tài)網(wǎng)站開發(fā)教程3)比較驗證控件

例如,對注冊的兩個密碼框(兩個TextBox控件的ID分別為txtPassword和txtPassword2)內(nèi)容進行比較驗證:<asp:CompareValidatorID="CompareValidator1"runat="server"ControlToCompare="txtPassword"ControlToValidate="txtPassword2"ErrorMessage="兩密碼不一致"></asp:CompareValidator>ASP.NET動態(tài)網(wǎng)站開發(fā)教程4)正則表達式驗證控件

RegularExpressionValidator控件用來驗證輸入的格式是否匹配某種特定的模式(用正則表達式來表示)除設置前面介紹的幾個基本屬性外,主要設置的是ValidationExpression屬性中的正則表達式ASP.NET動態(tài)網(wǎng)站開發(fā)教程4)正則表達式驗證控件

單擊ValidationExpression屬性右側的省略號找到了嗎?下方“驗證表達式”中的“天書”般的一系列符號即是最終的表達式!ASP.NET動態(tài)網(wǎng)站開發(fā)教程4)正則表達式驗證控件

對應CompareValidator控件的標簽代碼為:<asp:RegularExpressionValidatorID="RegularExpressionValidator1"runat="server"ControlToValidate="txtEmail"ErrorMessage="格式不正確"ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*“></asp:RegularExpressionValidator>ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(1)文字符號

最基本的正則表達式由單個文字符號組成。如a,它將匹配字符串中出現(xiàn)的字符“a”。如對字符串“Jackisaboy”。兩個“a”將被匹配。類似的,cat會匹配“Aboutcatsanddogs”中的“cat”。這等于是告訴正則表達式引擎,找到一個c,緊跟一個a,再跟一個t。正則表達式引擎缺省是大小寫敏感的。除非告訴引擎忽略大小寫,否則cat不會匹配“CAt”ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(1)文字符號

下面文字字符被保留作特殊用途(稱作元字符):

[]\^$.|?*+()若想在正則表達式中將這些字符只用作普通的文本字符,就需要用反斜杠“\”對其進行轉義可以使用特殊字符序列來代表某些不可顯示的字符:\t代表Tab\r代表回車符\n代表換行符ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(2)字符集

字符集是由一對方括號“[]”括起來的字符集合。使用字符集,可以告訴正則表達式引擎僅僅匹配多個字符中的一個。如,使用gr[ae]y匹配gray或grey。但不會匹配graay或graey若要字符集匹配任何不在方括號中的字符,就在左方括號“[”后面緊跟一個尖括號“^”。如q[^u]ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(2)字符集

字符集用到“元字符”怎么辦?除這4個字符(]\^-)需要轉義,其他常見的元字符在字符集定義內(nèi)部都是正常字符,直接寫即可。例如,要搜索星號“*”或加號“+”本身,可以直接用[+*]ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(2)字符集

字符集的簡寫

[0-9]=\d[A-Za-z0-9_]=\w(單詞字符)空格符和Tab符,以及回車換行符\r\n=\s(白字符)取反字符集的簡寫:

[^\s]=[\S][^\w]=[\W][^\d]=[\D]ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(3)使用?*或+進行重復

?:告訴引擎匹配前導字符0次或一次;+:告訴引擎匹配前導字符1次或多次;*:告訴引擎匹配前導字符0次或多次。[0-9]+會匹配837以及222<[A-Za-z][A-Za-z0-9]*>匹配沒有屬性的HTML標簽,“<”以及“>”是文字符號。第一個字符集匹配一個字母,第二個字符集匹配一個字母或數(shù)字允許定義對一個字符重復多少次。詞法是:{min,max}。min和max都是非負整數(shù)。如果逗號有而max被忽略了,如{min,},則max沒有限制。如果逗號和max都被忽略了,則重復min次。ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(4)使用“.”匹配幾乎任意字符

在正則表達式中,“.”是最常用的符號之一。“.”匹配一個單個的字符而不用關心被匹配的字符是什么。唯一的例外是換行符。因此,“.”相當于字符集[^\n\r]。ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(5)字符串開始和結束

“^”匹配一行字符串第一個字符前的位置。^a將會匹配字符串“abc”中的a。^b將不會匹配“abc”中的任何字符。類似的,“$”匹配字符串中最后一個字符的后面的位置。所以c$匹配“abc”中的c,而不會匹配“bcd”中的c。在編程語言中校驗用戶輸入時,如果想校驗用戶的輸入全部為整數(shù),用^\d+$。用戶輸入中,常常會有多余的前導空格或結束空格??梢杂胇\s*和\s*$來匹配前導空格或結束空格。ASP.NET動態(tài)網(wǎng)站開發(fā)教程正則表達式-(6)選擇符

正則表達式中“|”表示選擇??梢杂眠x擇符匹配多個可能的正則表達式中的一個。如果你想搜索文字“cat”或“dog”,可以用cat|dog。如果想有更多的選擇,只要擴展列表即可,如cat|dog|mouse|fish。選擇符在正則表達式中具有最低的優(yōu)先級,也就是說,它告訴引擎要么匹配選擇符左邊的所有表達式,要么匹配右邊的所有表達式。可以用圓括號來限制選擇符的作用范圍。如mouse(cat|dog)fish,這樣告訴正則引擎把(cat|dog)當成一個正則表達式單位來處理。ASP.NET動態(tài)網(wǎng)站開發(fā)教程5)自定義驗證控件

如果以上4種驗證控件都不是自己所需的驗證類型,那么還可以使用CustomValidator控件來自定義驗證。將CustomValidator控件拖入窗體,將ControlToValidate屬性指向被驗證對象在ErrorMessage屬性中填寫出現(xiàn)錯誤時顯示的信息雙擊該控件,為該驗證控件的ServerValidate

事件編寫驗證程序。

ASP.NET動態(tài)網(wǎng)站開發(fā)教程5)自定義驗證控件

例如,只有用戶輸入的帳號不為“tom”時才能驗證通過,否則提示“此賬號已被使用,請另選”。

protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgs

args){if(args.Value=="tom")//如果用戶輸入的帳號為”tom”{

args.IsValid=false;//驗證不允許通過

}else{

args.IsValid=true;//驗證通過

}}

ASP.NET動態(tài)網(wǎng)站開發(fā)教程再結合客戶端驗證程序ASP.NET動態(tài)網(wǎng)站開發(fā)教程6)驗證匯總控件ValidateSummary控件DisplayModeShowSummaryShowMessageBoxASP.NET動態(tài)網(wǎng)站開發(fā)教程在一個網(wǎng)頁中通常會出現(xiàn)幾個獨立的輸入部分,它們的作用不同,驗證的時機也不相同,應該分別進行驗證。

例如,網(wǎng)頁中即包括用于查詢信息的輸入部分,又包括用戶登錄部分,就屬于這種情況。若不進行分組,驗證將相互干擾。分組使用控件的ValidationGroup屬性。將查詢信息的輸入框控件、驗證控件、按鈕控件的ValidationGroup屬性都設置成一個值,如GroupSearch,將用戶登錄部分的輸入框控件、驗證控件、按鈕控件的ValidationGroup屬性設置另外一個值,如GroupLogin。6.3分組驗證ASP.NET動態(tài)網(wǎng)站開發(fā)教程【例】ASP.NET動態(tài)網(wǎng)站開發(fā)教程本章小結在網(wǎng)站中,對輸入數(shù)據(jù)進行校驗是經(jīng)常需要使用的技術。在ASP.NET中,各種校驗控件雖然驗證目的不同,但是使用的方法卻有很多共同點,都需要通過屬性指向被校驗的輸入控件,并指定錯誤發(fā)生時提示的語句。其他屬性的設置則根據(jù)控件的作用不同而有所不同。在這些控件中,除了RequiredFieldValidator控件,其他控件都認為空的輸入是允許的,因此,有時需要將RequiredFieldValidator控件與其他控件結合一起指向輸入控件,以避免輸入錯誤的發(fā)生。對于同一個網(wǎng)頁若存在多組獨立的驗證單元時,可使用分組驗證,以便讓它們在不同的時機完成自己獨立的驗證工作。ASP.NET動態(tài)網(wǎng)站開發(fā)教程1.填空題(1) 要對年齡進行輸入驗證,要使用

驗證控件。(2) RequiredFieldValidator控件的

屬性用來記錄當驗證失敗時,在ValidationSummary控件中顯示的文本。(3) RegularExpressionValidator控件的

屬性用來規(guī)定驗證輸入控件的正則表達式。(4) 正則表達式“1(3|5)

溫馨提示

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

評論

0/150

提交評論