ASP.NET應(yīng)用執(zhí)行驗(yàn)證
在創(chuàng)建ASP.NET應(yīng)用時(shí),ASP.NET為我們提供了配置文件來配置session state、授權(quán)和認(rèn)證等等。有兩個(gè)配置文件:
(1)Maching.config——用來定義server的配置,安裝.net framework的時(shí)候就安裝了此文件,位于%winDir%\Microsoft.Net\Framework\yourVersion\Config目錄下。此文件中的配置是應(yīng)用于本機(jī)所有虛擬目錄的。
(2)Web.config——針對各個(gè)具體的web應(yīng)用的配置,在各自ASP.NET應(yīng)用的目錄下。每個(gè)ASP.NET有自己的web.config文件,而此應(yīng)用下的每個(gè)子目錄也可以有自己的web.config文件,而且下級的web.config文件中的設(shè)置覆蓋上級web.config文件中的設(shè)置。
ASP.NET 安全基礎(chǔ)
開發(fā)一個(gè)安全的ASP.NET應(yīng)用必須考慮下面的基本的安全裝置:
(1)Authentication——檢查用戶的身份。
(2)Authorization——根據(jù)用戶的身份確定其能訪問哪些資源。
(3)Impersonation——就是一個(gè)線程使用不同于其所在進(jìn)程的身份去執(zhí)行操作的能力。
System.Web.Security 名字空間中提供了很多關(guān)于應(yīng)用安全的類。如:FormsAuthentication、FormsIdentity和PassportIdentity。具體請查閱MSDN。
ASP.NET應(yīng)用執(zhí)行驗(yàn)證
1.驗(yàn)證——通俗地說就是要檢查來訪者的身份——“來者何人?”
ASP.NET驗(yàn)證
ASP.NET使用authentication provider來實(shí)現(xiàn)驗(yàn)證,這些provider包括:
◆IIS authentication
◆Windows-based authentication
◆Forms-based authentication
◆Passport authentication
◆Anonymous authentication
下面分別說明之:
(1)IIS 認(rèn)證。任何Web請求必須先通過IIS來訪問ASP.NET應(yīng)用執(zhí)行驗(yàn)證,IIS的認(rèn)證可以通過IIS管理器進(jìn)行配置。IIS提供了多種認(rèn)證裝置,這包括:
◆Anonymous access——匿名訪問。當(dāng)不需要驗(yàn)證用戶身份的時(shí)候使用此方式。
◆Basic authentication——基本認(rèn)證。需要用戶提供用戶名和密碼,但以明文傳輸。這通常需要和SSL/TLS結(jié)合使用。
◆Digest authentication——摘要式認(rèn)證。和基本認(rèn)證類似,但不直接傳輸明文,而是傳輸Hash值。而且,需要IIS Server必須在一個(gè)windows域中,且使用AD來保存用戶帳戶。
◆Integrated Windows authentication——整合的windows認(rèn)證。使用windows認(rèn)證協(xié)議通信,使用操作系統(tǒng)中的帳戶。
◆Client certificate authentication——客戶端證書認(rèn)證。使用X.509數(shù)字證書來驗(yàn)證訪問者身份。
(2)基于Windows的認(rèn)證。ASP.NET應(yīng)用依賴windows操作系統(tǒng)去驗(yàn)證用戶。此為默認(rèn)選想。驗(yàn)證的過程為:Client端請求一個(gè)頁面——>IIS檢查windows帳戶,如果不合法則要求其登錄——>用戶登錄成功后,返回其請求的頁面。此驗(yàn)證方式對于有proxy server的情況下不能工作。
(3)基于表單的認(rèn)證。此認(rèn)證方式使用HTTP 客戶端重定向來重定向未驗(yàn)證通過的請求到一個(gè)HTML表單。其過程為:Client端請求一個(gè)頁面——>ASP.NET檢查客戶端的cookie,如果沒有發(fā)現(xiàn)則讓用戶登錄——>用戶登錄成功后,返回頁面和驗(yàn)證cookie給請求者。此驗(yàn)證方式需要開發(fā)者寫驗(yàn)證邏輯。
(4)Passport認(rèn)證。由微軟提供的集中認(rèn)證服務(wù)。
(5)匿名認(rèn)證。
2. Form 驗(yàn)證步驟為:
(1)在IIS管理器中設(shè)置IIS為匿名訪問。
(2)在web.config文件配置為Form認(rèn)證方式。
(3)建立授權(quán)。在web.config文件中配置<authorization>節(jié)來設(shè)定接收或者拒絕用戶訪問,還可以設(shè)置哪些頁面需要認(rèn)證。
(4)建立一個(gè)登錄頁面。在這個(gè)頁面上要求用戶輸入用戶名和密碼,然后到保存帳戶信息的地方進(jìn)行檢查。你可以把帳戶信息放在配置文件、注冊表、數(shù)據(jù)庫或者AD中。
3. Windows 驗(yàn)證步驟為:
(1)設(shè)置IIS為windows認(rèn)證,選擇basic、Digest和Integrated windows其中的一種方式。
(2)配置web.config。
以上介紹ASP.NET應(yīng)用執(zhí)行驗(yàn)證
【編輯推薦】