0

也許我誤解了ASP.NET身份和數據庫模型中的角色的概念,但我正在努力圍繞如何實現以下方案: ASP.NET身份,似乎用戶具有基於角色的全局權限,而不是更細粒度級別的權限。我試圖在Code-First的EF6中實現DB架構,其中用戶可以是多個組的成員。但是,我不希望用戶擁有全局角色,而只需要在一個組中扮演一個角色,而在另一個角色扮演不同的角色。ASP.NET身份自定義與基於組的角色

例如,用戶可以創建一個組,因此是組管理員,但也可以是組中的教師,因此能夠貢獻內容。相同的用戶也可以是不同組中的學生,因此在該組中具有不同的權限。用戶可以在給定的組中執行多個角色,並且他們的權限應該基於他們在該組中的角色。

從我所看到的這不是ASP.NET身份的預期結構,因爲我無法看到如何將特定角色的範圍限制到組。此外,理想情況下,我希望能夠將用戶分配到組,然後將用戶組分配給另一個組,然後例如我有一組用戶,並將該組分配給另一個組中的特定角色。

我記住的是一個MembershipId表,它具有UserId,GroupId和RoleId來處理將角色映射到特定組,但我如何擴展它以使角色從組繼承,並且能夠充分利用ASP.NET身份來幫助我管理這些角色,還是必須從頭開始自己的解決方案?

回答

2

如果你還沒有找到它並且你正在使用MVC,請看看這個。

http://typecastexception.com/post/2014/08/10/ASPNET-Identity-20-Implementing-Group-Based-Permissions-Management.aspx

我最近一直在工作在同一個相同的問題你。這涵蓋了很多要求,但存在差距 - ASP.NET身份不區分授權和身份驗證。在所有情況下,不具有所需權限的用戶都會被髮送到登錄屏幕。如果他們沒有登錄,那很好,但如果他們登錄並嘗試訪問他們沒有權限的東西,那就沒有問題。這可能是在這裏解決,但我還沒有時間來測試它。

How to make Authorize attribute return custom 403 error page instead of redirecting to the Logon page

相關問題