簡體   English   中英

.Net中的身份驗證和授權

[英]Authentication and authorization in .Net

我正在努力選擇用於.Net應用程序的身份驗證和授權的內容。 我正在將ASP.Net MVC與C#一起使用。 在Java中,我發現Spring Acegi Securiyy非常容易並且很好地實現以保護URL,隱藏菜單和按鈕,甚至保護我的方法。

另外,我將使用Windows Active Directory來存儲用戶配置文件。

.Net世界中與Spring Acegi類似的功能。 無論如何,這就是我想要的-

  1. XML類型配置可基於角色保護url,即只有Admin角色才能訪問/ admin / *頁面等。
  2. 在UI上,我想根據角色隱藏菜單和按鈕,例如if(角色是Admin)showButton。
  3. 盡管上面的內容就足夠了,但是我也想保護我的業務層。 這是因為我也公開了一個Web服務。

我知道我可以寫一個custome,但是如果有一些.net庫可用,為什么還要重新發明輪子。

  1. XML配置? 不,不包括基本的MVC。 使用WebForms,您可能會爭辯說web.config中的規則是基於XML的,但是它們不適用於ASP.NET MVC-請勿使用web.config中的路徑/位置。 授權由控制器類上的屬性控制。 但是有人寫了一個XML授權模塊 ,可能適合
  2. 如果需要,可以在UI中在“視圖”中執行此操作。 您可以像這樣通過身份驗證和未身份驗證來隱藏

    嗨,經過身份驗證的用戶

    並且您還可以使用Request.User對象來更具體

    嗨,超級用戶

  3. 您可以使用用戶名和密碼來保護Web服務,但是,如果您希望將身份從網站流向Web服務,因為網站調用起來比較棘手。 關於WCF身份驗證和授權,這里已經有很多問題和答案。

確實,.net具有非常強大的引擎。 您需要查看RoleProvider和MembershipProvider的現有實現或創建自己的實現。 在web.config中,您需要指定要使用的提供程序,並且最少要指定由角色保護的文件夾。 為了實現業務邏輯層安全性,您只需要在任何地方都可以使用Membership.GetUser,Roles.IsUserInRole,...

這不是一個真正的答案,但IMVHO,請考慮實現您的自定義邏輯。 的確,在這種情況下已經發明了這種方法,但是在使用Asp.NET身份驗證和授權的大部分時間里,我發現自己一直在掙扎。 您可以非常快速地啟動和運行,如果您的場景很簡單,那么這很好。 如果您想超越此范圍,則可能會失去最初獲得的所有時間。 但是正如我之前所說,這只是我的意見。

暫無
暫無

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

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