2012-08-09 64 views
0

有沒有一種可以在運行時修改細粒度訪問的首選方法?在asp.net Membership中實現細粒度的運行時權限?

ASP.net會員似乎不支持這一點。我想創建不變的隱形子角色,這樣就會有一組隱藏的角色,比如「_CanEditContent」和「_CanDeleteOthersContent」。該檢查將是[Authorize(Roles = SubRoles.CanEditUser)],它將檢查用戶是否具有_CanEditUser角色。問題在於如何將角色分配給其他角色,以便當我們創建像「UserAdmin」這樣的新角色時,我們如何將「_CanEditUser」角色分配給該新角色?這似乎不可能。

我需要做的是能夠在運行時創建角色併爲新角色或現有角色添加自定義權限。我會執行類似[Authorize]和自定義檢查AJAX方法的檢查。我將如何實現這一目標?

回答

0

事實上,asp.net會員不支持這一點。您必須使用自己的授權屬性來部署自己的機制,這將使用有關用戶(或角色)權限的信息。

您可以使用asp.net成員資格進行角色管理,然後以任何您想要的方式(例如數據庫)爲角色分配權限。

+0

感謝您的回答。我收起了自己的權限,這足夠用了(現在直到我遇到了磚牆,在我需要之前沒有想到什麼東西)。 – Nenotlep 2012-08-16 16:33:42