掌握.NET中的簡單表單評鑑

來源:互聯網
上載者:User

在ASP.NET安全術語中,有兩個很重要的詞語:評鑑和認證。評鑑機制有助於ASP.NET區別各個使用者。一旦被執行,評鑑機制就會運行並判斷你是否可以允許訪問你想要訪問的網頁。

在三種ASP.NET評鑑類型中,有兩種依賴於網頁程式之外的技術:

Windows評鑑整合在作業系統(Windows NT/2000/XP)的評鑑機制中;
密碼評鑑需要與一個Microsoft 密碼伺服器聯絡在一起。
你可以定義第三種類型評鑑機制,即表單評鑑。表單評鑑與ASP.NET程式緊密聯絡在一起。這一篇文章我們主要講述有關表單評鑑方面的內容。

簡單性

表單評鑑的一個重要的優點在於它的簡單性。由於簡單性,表單評鑑只需要你遵循以下幾步:

1.  編輯Web.config <authentication> 和 <authorization>中的內容;

2.  產生一個可供使用者訪問的標準SAPX網頁;

3.  建立一個帶有使用者名稱和密碼輸入框,以及一個提交表單銨鈕的註冊網頁;

4.  單擊表單中的提交按鈕,然後調用評鑑允許和RedirectFromLoginPage方法。

Web.config

Web.config中的<authentication>要素可以允許你在ASP.NET中使用表單評鑑。其中的一個子要素<forms>允許你指定要註冊的網頁。在<forms>要素中,你可以有選擇地添加一個<credentials>要素,這個要素直接分配使用者名稱和密碼,如表A所示。值得一提的是,我現在有必要解釋一下表單評鑑的簡單建立用法,這就意味著我要把很多使用者名稱和密碼儲存在Web.config中,這對於網路來說並不是一件很好的事情。

對於程式中的使用者評鑑,你必須採取一定的措施以禁止非法使用者的訪問。這也就是<authorization>要素指定的功能。你只需在<deny>要素中的使用者屬性設定為“?,”即可,如表A所示。

現在,如果有人想訪問被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檔案中加入代碼。這真是一種很快捷又安全的方法。




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。