在ASP.NET安全術語中,有兩個很重要的詞語:鑒定和認證。鑒定機制有助於ASP.Net區別各個用戶。一旦被執行,鑒定機制就會運行並判斷你是否可以允許訪問你想要訪問的網頁。
在三種ASP.Net鑒定類型中,有兩種依賴於網頁程序之外的技術:
Windows鑒定集成在操作系統(Windows NT/2000/XP)的鑒定機制中;
密碼鑒定需要與一個Microsoft 密碼服務器聯系在一起。
你可以定義第三種類型鑒定機制,即窗體鑒定。窗體鑒定與ASP.Net程序緊密聯系在一起。這一篇文章我們主要講述有關窗體鑒定方面的內容。
簡單性
窗體鑒定的一個重要的優點在於它的簡單性。由於簡單性,窗體鑒定只需要你遵循以下幾步:
1. 編輯Web.config 和 中的內容;
2. 生成一個可供用戶訪問的標准SAPX網頁;
3. 建立一個帶有用戶名和密碼輸入框,以及一個提交窗體铵鈕的注冊網頁;
4. 單擊窗體中的提交按鈕,然後調用鑒定允許和RedirectFromLoginPage方法。
Web.config
Web.config中的要素可以允許你在ASP.Net中使用窗體鑒定。其中的一個子要素
對於程序中的用戶鑒定,你必須采取一定的措施以禁止非法用戶的訪問。這也就是要素指定的功能。你只需在
現在,如果有人想訪問被Web.config管理的ASPX網頁,ASP.Net就會執行用戶鑒定,並決定是否通過鑒定認可。
一個標准的網頁
為了能檢測你的鑒定環境是否真正起作用,你應該建立至少一個ASPX網頁。表B中的范例建立的網頁簡單地說明了通過鑒定了的用戶名,這就是證明鑒定已經正常的工作。如果要檢測,你可以在你的浏覽器中直接地訪問這個網頁。如果你的鑒定系統能夠工作,你就能夠進入以下要講述的注冊頁。
注冊(登錄)頁
最簡單的注冊頁只包含一個用戶名文本輸入框,一個密碼文本輸入框,以及一個按鈕,如表C所示。你必須在代碼中編寫按鈕觸發事件以調用處理鑒定的函數。
表D顯示了按鈕觸發事件的過程。它采用System.Web.Security中的FormsAuthentication類,第一個函數即被調用,然後傳遞用戶名和密碼。.Net使用Web.config文件中的元素比較輸入的用戶名和密碼。如果用戶名和密碼正確,RedirectFromLoginPage函數就會被調用。
RedirectFromLoginPage函數中的參數包含用戶名和一個布爾量的值,這個值代表輸入用戶名對應的密碼是否正確。
完成這些步驟之後,如果你想試一試浏覽器能否正確訪問這些標准網頁,你可以直接使用注冊頁。除非你能正確地通過鑒定,否則你只能永遠地停留在注冊頁。
改進措施
正如我所提過,你最好不要把用戶名和密碼長久地保存在Web.config文件中。這是因為你不能動態地接受新用戶的信息,同時當你想人工地更新Web.config,你的程序會重新啟動,這很有可能產生很多異常。
所以,你最好不要使用獨立文件或數據庫來保存用戶名和密碼。否則一旦你這樣做,你將不能調用FormsAuthentication.Authenticate函數。
你也可以把密碼進一步加密以避免一些別有用心的人獲取用戶名和密碼表。FormsAuthentication類中的HashPassWordForStoringInConfigFile函數能達到這一要求。
快捷又安全
使用窗體鑒定,你可以在幾分鐘之內建立一個簡單而又安全的網絡程序,你無需在程序的ASPX文件中加入代碼。這真是一種很快捷又安全的方法。