簡體   English   中英

ASP.NET安全身份驗證和授權的最佳實踐

[英]Best Practice for ASP.NET Security Authentication and Authorization

對於ASP.NET網站實施不基於Windows AD的安全身份驗證和授權並將帳戶信息存儲在數據庫中的最佳做法,通常被公認的最佳做法是什么? 是否要使用內置的表單身份驗證,庫存或自定義滾動會員資格提供程序,企業庫安全性塊?

它們之間是否有優點和缺點,例如替換Forms Authentication會使使用需要限制的文件(不是ASP.NET文件)保護目錄變得更加困難或無法實現?

哦,那是一個很大的話題,所以我將列出一些一般性觀點。

表單身份驗證為您提供了一個與會話cookie分開的身份驗證cookie,它可以防止篡改並可以加密。 其提供程序模型意味着即使您滾動自己的成員資格提供程序,該保護仍然存在,並且這些提供程序可用於保護WCF Web服務,並允許Silverlight進行身份驗證和授權

Forms auth還在執行線程上創建了一個IIdentity / IPrincipal對象,這意味着您可以使用CAS PrincipalPermission要求來保護可以與ASP.NET應用程序分離的方法,類甚至程序集,從而使授權成為應有的關注點。

IIS 7的文件保護機制還使用Forms auth,因此可以與IIS7一起使用,以保護任何類型的文件,而不僅僅是與ASP.NET ISAPI DLL相關聯的文件(您可以在IIS6中進行通配符映射和將所有內容都放入ASP.NET管道中,但這會影響可伸縮性)

表單身份驗證不允許模擬。

自己滾動即可消除所有這些。 您可以開始使用HTTP模塊重新構建它,該模塊將執行您自己的cookie加載和驗證,在線程上創建主體並檢查對資源的訪問。 您仍然需要編寫數據庫位,控制是否需要它們,自己的類並將它們插入。

而且您需要正確處理。

標准方法有很多優點,並且已經被很多人錘擊,測試,使用和濫用,滾動自己的最大弊端是您可能不像您認為的那樣聰明。 -我知道我不會做。

通常將使用表單身份驗證(與stock MembershipProvider或自定義MembershipProvider一起使用)視為標准。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM