熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

深入講解 ASP+ 驗證(一)

2013-11-13 10:04:58  來源: .NET編程 
入門

  我們知道在整個 ASP+ 開發過程中了解驗證非常重要看看如今的大多數商業 Web 站點您會發現這些站點中有許多表單這些表單明顯是通過執行大量手寫的代碼來執行驗證編寫驗證代碼並不是一件有趣的工作如果要通過編寫代碼來顯示數據表或動態生成圖表可能會很吸引人但是沒有人可以向他的同事證實這種很的方法能夠禁止在姓名字段中輸入空值

  因為其它一些原因Web 應用程序的驗證也是非常麻煩的HTML 對您可以控制的內容或可以從用戶處得到的反饋的限制很多因此無法應用在功能更全的客戶機上可以使用的技巧例如禁止用戶輸入某些字符或發出嘀聲使用浏覽器腳本可能會產生更強大的驗證但是這種方法很難得以證實因為客戶浏覽器中並非一定有腳本並且惡意的用戶可以繞過因此為了保證站點安全有必要對服務器進行同樣的檢查

  在開發 ASP+ 時我們的初衷是只使用一個控件來處理驗證可能本該是一個能夠顯示錯誤的 TextBox 控件可是到了設計該控件時卻發現無法實現這種願望我們研究了大量的數據輸入表單試圖找到可以適用於盡可能多的表單的一種解決方案我們發現數據輸入表單具有許多有趣的特性

  盡管錯誤信息或圖標經常與輸入元素相鄰但是它們幾乎總是位於表的不同單元格中頁面中經常會有一個區域來匯總所有錯誤許多站點包含客戶端腳本以便提供更快捷的反饋同時防止白白地在與服務器之間往返許多包含客戶端腳本的站點在出現錯誤時會顯示信息框不僅會驗證文本輸入還會驗證下拉列表和單選按鈕如果某個字段為空站點通常會顯示與該條目無效時不同的信息或圖標許多有效性檢查可以很好地代替常用的表達式驗證通常是基於兩個輸入之間的比較結果% 或 % 以上的驗證任務是一些常見的操作例如檢查姓名或郵政編碼大多數站點似乎仍在重復進行這些工作

  因為站點之間的差別通常太大無法獲得一種完美的解決方案來處理每個站點的所有驗證任務考慮了上述所有情況最終獲得的解決方案包括五個驗證器控件ValidationSummary 控件以及與 Page 對象的集成同時很明顯該解決方案需要擴展在客戶機和服務器上均需要有一個 API 來配合

  我們在研究進行的各種驗證時發現我們似乎需要一個更大的工具箱在大多數組件環境中例如 Microsoft® ActiveX®我們可能本來試圖將所有驗證控件的功能集成到一個控件中處理不同模式下的不同屬性不過幸好 Microsoft® NET 框架中有神奇的繼承性可以提供一套控件來對特定的屬性進行特定的驗證因為派生每個新控件所需的額外工作量非常小

  這些控件所完成的大多數工作均在其公用的父級 BaseValidator 中實現您也可以從 BaseValidator 或其它控件派生來完成各項工作實際上即使 BaseValidator 都懶得實現其自己的 Text 屬性而是從 Label 屬性繼承


何時發生何事?

  在處理包含驗證 Web 控件的頁面時了解事件序列非常有效如果某個驗證條件是可選的您需要准確了解客戶機和服務器上何時進行驗證如果要自己編寫驗證例程可能會非常耗時或者有副作用同時了解調用驗證例程的時機也很重要

From:http://tw.wingwit.com/Article/program/net/201311/12495.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.