我在asp.net mvc 4应用程序中实现角色和权限的要求非常复杂。我知道ASP.NET身份验证,但这不符合我的要求。
我的应用程序中有15-20个控制器具有各自的视图,一些视图具有部分视图,这些视图在Jquery代码中处理并从那里加载。
现在我有以下要求:
1)某些控制器只能访问一些特定的角色。 1)控制器中的某些视图只能由特定角色访问。 2)在网格视图中,只有一些列和操作(如编辑/创建/删除)只能访问特定角色。
我正在考虑基于角色对控制器,操作和视图进行检查,但是当我将来拥有多个角色和自定义角色时,这会导致问题。什么是实施这种解决方案的最佳方式。任何建议将不胜感激。
答案 0 :(得分:1)
每次你有"复杂"授权要求,这是一个非常好的迹象表明"以身份为中心"访问控制是不够的。什么是以身份为中心的?仅依赖于用户指标(身份,角色,组)的授权。
此外,在您的问题中,您列出了一个事实,即您不知道未来会怎样。您不知道需要实现哪些其他自定义角色。
所有这些意味着您需要使用基于属性的访问控制(abac)扩展现有的RBAC实现。 ABAC为您提供了RBAC中没有的3个有趣元素: