簡體   English   中英

在ASP.NET中,什么用於管理角色和分配給角色的權限?

[英]In ASP.NET, what to use to manage roles and permissions assigned to roles?

我正在使用ASP.NET Web應用程序。 我有一個眾所周知的問題:每個用戶可以屬於一個或多個角色(管理員,公共用戶),每個角色可以具有一個或多個權限(可以編輯,可以刪除,可以上載等),反之亦然。 我想做這樣的事情:[ http://demo.sitefinity.com/Sitefinity/Admin/Modules.aspx?route=GenericControlPanel.PermissionsView`1 ]。

我找到了實現這些的選項:

  • 使用NetSqlAzMan (但我不確定它是否可以與我們的應用程序一起使用,因為我們的用戶與應用程序不在同一個數據庫中,並且我們使用的是表單身份驗證)
  • 實現自己的類,使我能夠執行以下操作:User.HasPermission / AddPermissionToUser /等。
  • 使用2個角色提供程序:一個由於已知角色和權限之間的m:n關系而知道這些提供程序將被“鏈接”,因此一個用於管理角色,一個用於管理權限。
  • 我現在正在使用自定義角色提供程序,因此另一個選擇是添加方法來管理對此提供程序的權限。

我還想緩存給定用戶的角色和權限。 我認為我自己需要一些時間,所以您對我有什么建議?

先感謝您

如果您找到了一個針對權限模塊的好的打包解決方案,那么我想看看:)

通常,內置安全提供程序在“標識”和“授權”部分之后停止。 一旦被識別並被授權訪問該應用程序,您就可以自行編碼和管理更具體的頁面或功能級別的權限。

您描述的權限級別實際上是一個相當高級的實現。 它在Windows中鏡像訪問控制列表(ACL)。 盡管看起來很簡單,但實際上很難編寫代碼。 一旦進行了設計,就會發現您必須實現“拒絕”替代權限,必須處理多級組權限合並,然后必須處理“特殊”權限等。 然后,您遇到諸如“編輯權限是否也隱含視圖,如果他們沒有視圖卻有添加”該怎么辦?

真是一團糟。

在您以這種復雜性級別實施權限之前,強烈建議您退后一步,看看您是否可以稍微簡化權限和角色/組模型。 您不僅可以讓角色獲得許可嗎? 例如,可以編輯的角色,可以添加的角色,可以查看...的角色等。

在大多數應用程序中,您實際上並不需要權限系統中的完整ACL(如粒度)。

一旦定義了應用程序真正需要的適當權限級別,通常最好滾動一組自定義對象來管理這些權限。 我不得不說,我從來沒有考慮過使用第二個鏈接角色提供程序作為權限管理器……實際上,這是一個好主意。 但我還是建議不要這樣做。 角色提供程序不是為您要嘗試的操作而設計的,您可能不得不擴展和覆蓋默認行為,以至於僅從頭開始使用自定義實現,它將變得更加簡單和可維護。

這是一個結合身份驗證+權限和角色+日志記錄和審核的工具http://visual-guard.com/

身份驗證可以是Windows,在這種情況下,它實現單點登錄或用戶名/密碼組合

2個控制台可用於管理用戶和權限-一個控制台面向開發人員,並提供一個向導來定義權限,而無需進行編碼(針對.Net),部署和版本控制功能。 -另一個是基於Web的非技術用戶管理員,主要關注用戶帳戶,組並將其映射到角色。

許可在某些情況下可能非常細致(“表格”對於“醫生”從上午8點到上午11點可見,因為它與僅在早上才提供的葯物有關)

它最初只是面向.Net的,現在它們支持Java,Delphi C ++等其他技術,基本上是任何能夠調用Web服務的技術。

暫無
暫無

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

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