asp.net中的幾種身分識別驗證比較

來源:互聯網
上載者:User
摘要:本文介紹了ASP.NET應用程式中的兩種常用的身分識別驗證的方法。給出了兩種方法的實現,並對其特點進行了分析和比較。
  1 引言
  ASP.NET提供四種使用者驗證方式:Windows身分識別驗證、視窗身分識別驗證、Passport驗證以及IIS身分識別驗證。可在虛擬目錄的web.config檔案中指定此應用程式或目錄的驗證類型,程式碼範例如下。
  
  這裡對前兩種方式進行介紹和比較。
  
  2 Windows身分識別驗證
  IIS通過基本驗證、摘要驗證或整合Windows驗證進行初始驗證。並用此賬戶訪問請求的資源。驗證必須使用Windows中已建立的本地賬戶。
  使用Windows身分識別驗證時,可用元素開啟模仿,使使用者使用它們用來登陸的賬戶進行資源訪問。
  
  roles和users屬性至少要有一項,多個角色或者使用者可用逗號隔開。而verb屬性是可選的。在不同的程式或目錄中配置web.config檔案,便可以限定使用者對於資源的存取權限。
  可用”*”號表示所有的角色、使用者或謂詞,”?”號表示“匿名訪問”的使用者。如配置有多個web.config檔案,則離應用程式檔案最近的一個配置將覆蓋上級目錄中設定檔中的重複項。
  當程式找到第一個匹配時並不停止處理,而是遍曆所有的項,直到找到最好的選擇。因此可使用來允許角色訪問,而使用拒絕角色中特定使用者訪問。
  在IIS管理工具中,將目錄屬性中的“允許匿名”前的勾號去掉,然後在下方選擇驗證的方法:基本驗證、摘要驗證,或整合Windows驗證。
  
  3 視窗身分識別驗證
  使用者通過程式提供的視窗提交認證,如果應用程式驗證成功,則系統發出包含認證的cookie,使用者在保留此cookie期間可訪問應用程式。其典型的web.config配置如下:
  
  其中:
  (1)name:cookie的名稱
  (2)path: cookie的有效路徑,通常設為“/”來表示整站。
  (3)loginurl:登陸頁面地址
  (4)protection:cookie保護層級,All-使用資料驗證和加密;None-不保護;Encryption-僅執行加密;Validation-僅執行資料驗證。
  (5)timeout:cookie到期時間,單位是分鐘。
  (6)requieSLL:是否強迫使用SSL。強烈建議使用SSL。
  元素為可選項,表明使用者密碼加密的演算法,並列出可訪問受保護資源的使用者及密碼。也可以使用資料庫或XML等形式儲存使用者和密碼,並編寫代碼進行讀取和驗證。建議不儲存純文字密碼,而儲存它們的Hash形式的資料。
  元素指定對cookie進行加密的密匙的產生方法。一般指定為自動產生。
  雖然ASP.NET已經為我們作了絕大部分的工作,但是使用者仍然要編寫代碼來完成Form形式的驗證。處理基於表單驗證的類是FormsAuthentication類,位於System.Web.Security命名空間。可參考MSDN中的詳細說明。
  注意:視窗驗證中的資源許可權管理,只適用於由ASP.NET管理的資源,如果要保護其他類型的資源,如文本、圖片等,可採取在IIS中添加檔案對應的方法。
  
  4 總結比較
  Windows身分識別驗證仍存在著帳戶劫持、資訊泄露等威脅。但是,在配置合理的情況下,有著比視窗認證更高的可靠性和更小的攻擊面。並且對於使用者的使用權限設定有著更大的自由度。然而,倘若配置不當,或者基於不安全的網路設定,使得帳戶泄露,可能導致災難性的後果。由於帳戶必須是存在的Windows帳戶,使得其只適用於企業內網或者使用者相對固定的網路。而視窗驗證適用於使用者群龐大或開放註冊的環境,如大型社區、論壇等等。但是視窗驗證方式可能受到的攻擊和威脅要比Windows身分識別驗證要多的多,如SQL注入、跨網站指令碼攻擊、資訊泄露等等。
  參考文獻:
  [1]Alex Homer,Dave Sussman.等.著.李敏波.譯.ASP.NET進階編程[M].清華大學出版社,614-675.
  [2]Mark M.Burnett.著.良忠.譯.Hacking The Code:ASP.NET Web Application Security[M].電子工業出版社,47-64.
  [3]張彬,張浩.ASP.NET應用程式安全缺陷及分析[J].資訊技術,2006,3.  

聯繫我們

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

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

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.