淺析ASP.NET安全性
ASP.NET安全性是Web 應(yīng)用程序中一個非常重要的方面,它涉及內(nèi)容非常廣泛,不能在一篇文章內(nèi)說明所有的安全規(guī)范,本文講述如何利用IIS以及Forms 身份驗證構(gòu)建安全的 ASP.NET 應(yīng)用程序,它是目前被使用最多最廣的驗證/授權(quán)方式.
本文分別以ASP.NET1.1與ASP.NET2.0在Forms 身份驗證上的實現(xiàn)方法,以及ASP.NET2.0較上一版本有哪些改進(jìn)或變化進(jìn)行說明.相信讀者都己經(jīng)看過許多類似這樣的文章,不倫是在網(wǎng)上或是某些專業(yè)書籍上,最近又有模式&實踐小組成員發(fā)布WCF安全模型指南,可見構(gòu)建網(wǎng)站安全總是不過時的話題,作者認(rèn)為此文也絕對是您應(yīng)該收藏的參考資料.
ASP.NET安全性的工作原理
網(wǎng)站在安全性方面有一個常見的要求:特定的頁面僅允許某些成員或其他經(jīng)過身份驗證的用戶瀏覽.充分利用Forms身份驗證是***的方式.
身份驗證
從實現(xiàn)機(jī)制來說ASP.NET1.1與ASP.NET2.0 的安全模型是一致的.首先配置網(wǎng)站為Forms 身份驗證模式,之后用戶訪問網(wǎng)站的URL,Forms 身份驗證系統(tǒng)會將未經(jīng)身份驗證的請求重定向到指定的登錄頁.用戶輸入憑據(jù)(用戶名密碼)并提交該頁.如果驗證程序驗證用戶的身份合法,則系統(tǒng)會向客戶端發(fā)出一個特定 Cookie(.NET1.1不支持無Cookie模式),它代表用戶的身份驗證票據(jù).這樣后續(xù)的請求中,客戶端瀏覽器會把該Cookie一同發(fā)送致服務(wù)器,如果該Cookie有效則用戶通過身份驗證并允許對原始請求的資源的訪問.
授權(quán)
如果用戶的請求被驗證通過了,但是他請求的URL是否允許用戶訪問了呢,這就用到了授權(quán).可以通過應(yīng)用程序配置文件來進(jìn)行授友也可以在程序中使用代碼來驗證用戶是否有資格訪問該資源.如果授權(quán)失敗,則 ASP.NET 將用戶重定向到登錄頁.如果用戶已被授權(quán),則將允許用戶訪問受保護(hù)資源.
ASP.NET1.1實現(xiàn)方式
ASP.NET1.1的實現(xiàn)方式非常簡單,不過我們還是需要手寫一些代碼的,下面我們就一步一步地實現(xiàn).應(yīng)用程序配置節(jié)的詳細(xì)說明請參考MSDN相關(guān)文檔.
- <configuration>
- <system.web>
- <authenticationmodeauthenticationmode="Forms">
- <formsnameformsname=".ASPXCOOKIEAUTH"loginUrl=
"Login.aspx"protection="All"timeout="30"path="/"/>- < SPAN>authentication>
- <authorization>
- <denyusersdenyusers="?"/>
- < SPAN>authorization>
- < SPAN>system.web>
- <locationpathlocationpath="Admin">
- <system.web>
- <authorization>
- <allowrolesallowroles="Admins"/>
- <denyusersdenyusers="*"/>
- < SPAN>authorization>
- < SPAN>system.web>
- < SPAN>location>
- < SPAN>configuration>
以上是介紹ASP.NET安全性
【編輯推薦】