自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET數(shù)據(jù)驗(yàn)證技術(shù)研究詳解

開發(fā) 后端
ASP.NET數(shù)據(jù)驗(yàn)證技術(shù)研究主要向你講述了隨著ASP.NET技術(shù)為代表的新的Web技術(shù)的發(fā)展,ASP.NET數(shù)據(jù)驗(yàn)證技術(shù)也跟著有了強(qiáng)大的功能。

引 言

隨著ASP.NET技術(shù)為代表的新的Web技術(shù)的發(fā)展,Web在各行各業(yè)得到廣泛的應(yīng)用,其功能越來越復(fù)雜,也越來越強(qiáng)大。Web開發(fā)中的一個(gè)很重要的問題就是,如何設(shè)計(jì)安全有效的Web程序,可以保護(hù)存儲(chǔ)的重要信息,以降低其受攻擊的危險(xiǎn)。

數(shù)據(jù)驗(yàn)證是驗(yàn)證用戶標(biāo)識(shí)真實(shí)性的過程,用以鑒別用戶身份是否合法。ASP.NET中,在編寫Web應(yīng)用程序時(shí),用戶保存或者處理信息,就需要判斷其有效性和安全性。由于Web應(yīng)用程序是基于請(qǐng)求/響應(yīng)模式的,所以Web的數(shù)據(jù)驗(yàn)證有多種方式。可以在服務(wù)器端直接對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,也可以編寫客戶端腳本來實(shí)現(xiàn)數(shù)據(jù)有效性的驗(yàn)證,當(dāng)這些數(shù)據(jù)提交給服務(wù)器時(shí)就經(jīng)過了驗(yàn)證。在實(shí)際的項(xiàng)目開發(fā)中,既需要客戶端驗(yàn)證,也需要服務(wù)器驗(yàn)證。

2 幾種常用的ASP.NET數(shù)據(jù)驗(yàn)證技術(shù)

2.1 基于圖片和附加碼的ASP.NET數(shù)據(jù)驗(yàn)證

目前實(shí)現(xiàn)圖片驗(yàn)證碼時(shí)有兩種方式:

(1)通過動(dòng)態(tài)數(shù)據(jù)網(wǎng)頁中的各種腳本來實(shí)現(xiàn)。

(2)用支持動(dòng)態(tài)數(shù)據(jù)網(wǎng)頁的第二方組件來實(shí)現(xiàn)。

組件的應(yīng)用會(huì)提高效率,比較容易實(shí)現(xiàn),在ASP.NET中編寫基本的腳本,賦予其必要的屬性,例如生成碼顏色,碼位數(shù),碼尺寸等,就可以靈活地生成一組驗(yàn)證碼。驗(yàn)證碼圖片一般放在用戶名和用戶密碼的后邊即可,也可以根據(jù)需要放置。附加碼通常由服務(wù)器隨機(jī)產(chǎn)生,一般是由數(shù)字和字母組成的一串字符,顯示在登陸頁面中,用戶登錄時(shí)必須將附加碼一并輸入提交,服務(wù)器對(duì)提交的驗(yàn)證碼同時(shí)進(jìn)行驗(yàn)證。

2.2 Web表單ASP.NET數(shù)據(jù)驗(yàn)證

在ASP.NET中,被指定為runat=“server”的表單被稱為Web表單,Web表單本身是基于服務(wù)器的,是ASP.NET用來為應(yīng)用程序提供大部分功能框架的一部分,服務(wù)器對(duì)界面的情況一清二楚,也就是說用戶元素只能在服務(wù)器上創(chuàng)建。當(dāng)用戶輸人完數(shù)據(jù)提交表單時(shí),服務(wù)器將通過另外的頁面來驗(yàn)證Web表單中所輸入數(shù)據(jù)是否有效。表單在實(shí)現(xiàn)驗(yàn)征方面具有靈活性和易于實(shí)現(xiàn)性,其數(shù)據(jù)驗(yàn)證功能比較強(qiáng)大,開發(fā)人員既可以把用戶信息放在Web.config文件中,也可以將用戶的驗(yàn)證信息放在數(shù)據(jù)庫或XML文件中,通過創(chuàng)建自己定義的程序來驗(yàn)證數(shù)據(jù)。

2.3 Web窗體ASP.NET數(shù)據(jù)驗(yàn)證

ASP.NET框架還提供了一種新型的數(shù)據(jù)驗(yàn)證,他將使用Web服務(wù)器控件來實(shí)現(xiàn)數(shù)據(jù)的驗(yàn)證,稱其為Web窗體數(shù)據(jù)驗(yàn)證技術(shù)。因此,把專門用于Web數(shù)據(jù)驗(yàn)證的Web服務(wù)器控件稱為Web數(shù)據(jù)驗(yàn)證控件。ASP.NET中有6種數(shù)據(jù)驗(yàn)證控件,這里著重介紹靈活強(qiáng)大CustomVal-idator控件,假設(shè)現(xiàn)在建立一個(gè)與數(shù)學(xué)有關(guān)的網(wǎng)站,在這個(gè)網(wǎng)站,要求瀏覽者提供自己喜歡的質(zhì)數(shù),以此來提高網(wǎng)站的訪問量。在ASP.NET中,沒有一個(gè)專門驗(yàn)證質(zhì)數(shù)的服務(wù)器端數(shù)據(jù)驗(yàn)證控件,這樣,就有必要用到CustomValida-tor控件。以下例子用來驗(yàn)證用戶輸入的數(shù)是不是質(zhì)數(shù):

驗(yàn)證用戶輸入 

2.4 使用客戶端腳本實(shí)現(xiàn)ASP.NET服務(wù)器控件的ASP.NET數(shù)據(jù)驗(yàn)證

為了減少數(shù)據(jù)驗(yàn)證時(shí)瀏覽器和服務(wù)器之間的往返時(shí)間,可采用客戶端腳本來實(shí)現(xiàn)其功能,在瀏覽器中使用的腳本有很多,如VBScript,JSCript,JavaScript等,但是這樣存在安全隱患,因?yàn)橛脩艨梢匀我庑薷目蛻舳四_本以跳過客戶端的驗(yàn)證,還有些瀏覽器是不支持客戶端腳本的,這樣的數(shù)據(jù)驗(yàn)證就必須在服務(wù)器端進(jìn)行。

2.5 使用正則表達(dá)式進(jìn)行ASP.NET數(shù)據(jù)驗(yàn)證

正則表達(dá)式(Regular Expression)是由普通字符(稱為原義字符)和特殊字符(稱為元字符)組成的字符串,用來定義字符處理時(shí)需要匹配的內(nèi)容模式。也就是說,正則表達(dá)式可以讓用戶通過使用一系列的特殊字符構(gòu)建匹配模式,然后把匹配模式與Web頁面的表單輸入等目標(biāo)對(duì)象進(jìn)行比較,根據(jù)比較對(duì)象中是否包含匹配模式,以執(zhí)行相應(yīng)的處理操作。對(duì)于處理字符串的許多應(yīng)用程序而言,正則表達(dá)式是不可缺少的模式描述工具。

例:定義一個(gè)匹配我國居民身份證號(hào)碼格式的正則表達(dá)式。分析:我國居民身份證號(hào)碼規(guī)定的合法格式為15位或18位數(shù)字。根據(jù)語法規(guī)定,對(duì)應(yīng)的正則表達(dá)式應(yīng)寫為:“\d{15}| \d{18}”。

3 對(duì)象成員ASP.NET數(shù)據(jù)驗(yàn)證組件實(shí)現(xiàn)

以上的數(shù)據(jù)驗(yàn)證技術(shù)在數(shù)據(jù)驗(yàn)證方面起著重要的作用,有著各自不同的特點(diǎn).他們都是經(jīng)過UI邏輯的數(shù)據(jù)驗(yàn)證,經(jīng)過UI邏輯驗(yàn)證數(shù)據(jù)后,通過開發(fā)對(duì)象成員數(shù)據(jù)驗(yàn)證組件來進(jìn)行下一步的業(yè)務(wù)邏輯的驗(yàn)證,可以較大程度上提高數(shù)據(jù)的安全性。

大多數(shù)情況下,在UI經(jīng)過驗(yàn)證的數(shù)據(jù)就交給業(yè)務(wù)邏輯進(jìn)行處理,而業(yè)務(wù)邏輯往往不會(huì)對(duì)數(shù)據(jù)再進(jìn)行驗(yàn)證操作。業(yè)務(wù)邏輯認(rèn)為數(shù)據(jù)來源于UI,在UI驗(yàn)證數(shù)據(jù)就已經(jīng)夠安全,如果在業(yè)務(wù)邏輯再進(jìn)行一次驗(yàn)證有點(diǎn)多此一舉。而業(yè)務(wù)邏輯本身就是一個(gè)獨(dú)立體,把數(shù)據(jù)的合法性依賴于UI是不應(yīng)該的,不合理的。但在業(yè)務(wù)邏輯中對(duì)成員的數(shù)據(jù)驗(yàn)證并不像UI那樣有著方便的驗(yàn)證控件,如果手動(dòng)對(duì)每個(gè)數(shù)據(jù)成員進(jìn)行編碼驗(yàn)證的確會(huì)增加很大的工作量。為了解決這方面問題,將通過Custom Attribute的方式來簡(jiǎn)化對(duì)象成員數(shù)據(jù)驗(yàn)證的功能;為了簡(jiǎn)化驗(yàn)證代碼的編寫,將通過Attribute來配置對(duì)象成員需要驗(yàn)證的方式,然后通過容器進(jìn)行統(tǒng)一驗(yàn)證。

通過容器進(jìn)行統(tǒng)一驗(yàn)證 

為了規(guī)定一個(gè)統(tǒng)一的驗(yàn)證規(guī)則,制定一個(gè)驗(yàn)汪對(duì)象基礎(chǔ)類:

驗(yàn)汪對(duì)象基礎(chǔ)類 

驗(yàn)汪對(duì)象基礎(chǔ)類 
 

當(dāng)定義了驗(yàn)證的方式后就可以通過組件的容器對(duì)類的實(shí)例進(jìn)行數(shù)據(jù)驗(yàn)證。

實(shí)例數(shù)據(jù)驗(yàn)證 

把需要驗(yàn)證的類型添加到容器中,通過容器的Vialid 方法對(duì)實(shí)例進(jìn)行驗(yàn)證。

實(shí)例數(shù)據(jù)驗(yàn)證 

4 ASP.NET數(shù)據(jù)驗(yàn)證結(jié)語

通過對(duì)多種數(shù)據(jù)驗(yàn)證技術(shù)的學(xué)習(xí),可以增加Web的安全性,綜合學(xué)習(xí)這些知識(shí)以及ASP.NET和.NET框架的其他功能,就可以編寫出功能強(qiáng)大的Web應(yīng)用程序。今后在對(duì)數(shù)據(jù)驗(yàn)證技術(shù)的研究中,可以將數(shù)據(jù)驗(yàn)證的實(shí)現(xiàn)從配置XML文件中分離出來,即用戶不需要知道如何使用這些XML文件,而是通過一個(gè)友好界面來配置要進(jìn)行的數(shù)據(jù)驗(yàn)證。

ASP.NET數(shù)據(jù)驗(yàn)證的相關(guān)內(nèi)容就向你介紹到這里,希望對(duì)你了解ASP.NET數(shù)據(jù)驗(yàn)證有所幫助。

【編輯推薦】

  1. ASP.NET數(shù)據(jù)驗(yàn)證中的驗(yàn)證組淺析
  2. ASP.NET數(shù)據(jù)驗(yàn)證控件使用淺析
  3. ASP.NET數(shù)據(jù)驗(yàn)證五大常用控件淺析
  4. 有關(guān)ASP.NET代碼分離的一些討論
  5. ASP.NET代碼分離使用的一點(diǎn)體會(huì)
責(zé)任編輯:仲衡 來源: 中電網(wǎng)
相關(guān)推薦

2009-09-18 10:20:26

PRG數(shù)據(jù)驗(yàn)證

2009-07-29 12:55:44

ASP.NET身份驗(yàn)證

2009-07-29 09:59:10

ASP.NET For

2009-07-29 16:08:07

ASP和ASP.NET

2010-03-19 09:17:16

ASP.NET MVC

2009-08-04 15:20:59

ASP.NET數(shù)據(jù)驗(yàn)證數(shù)據(jù)驗(yàn)證控件

2009-08-04 15:02:18

ASP.NET數(shù)據(jù)驗(yàn)證

2009-07-28 16:57:50

ASP.NET Ses

2009-07-24 10:14:22

ASP.NET開發(fā)

2009-08-05 11:14:33

ASP.NET ISA

2009-07-22 16:25:41

ASP.NET AJA

2009-07-23 13:19:51

2009-08-05 15:29:33

ASP.NET For

2009-08-05 13:09:17

ASP.NET應(yīng)用執(zhí)行

2009-08-05 16:50:09

ASP.NET For

2009-07-27 17:25:53

ASP.NET驗(yàn)證控件

2009-08-05 16:17:29

ASP.NET For

2009-11-24 15:11:21

ASP.NET MVC

2009-09-11 09:18:17

ASP.NET MVC

2024-05-06 00:00:00

ASP.NET授權(quán)機(jī)制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)