Mik*_*hov 5 asp.net asp.net-membership rbac
目前,我们正在设计一个用户角色和权限系统在我们的Web应用程序(ASP.NET),它似乎是我们有一些情况下是做不适合古典中基于角色的访问控制(RBAC) 。我将发布几个问题,每个问题都针对一个特定案例。这是我的第二个问题(第一个问题在这里:非RBAC用户角色和权限系统:检查用户的City)。
我们有以下情况:我们需要在Web应用程序中实现Manager角色。但是,管理者可以属于一个或多个公司(在我们为其创建此Web应用程序的一大批公司中)。假设有“公司A和B的经理”,“公司C的经理”等。
根据管理者所属的公司,他可以访问某些业务:例如,他只能与他所属的公司的客户进行通信。也就是说,“公司A和B的经理”只能与公司A和B的客户联系,而不能与公司C的联系人联系。他还可以查看公司A和B而不是C的客户的详细信息页面,等等。 。
看来这种情况属于RBAC。但是,事实并非如此。我们将需要创建一个具有Companies属性的ManagerRole类 -也就是说,这不仅是一个权限集合的角色(如在传统的RBAC中一样),而且还有一个具有属性的角色!
这只是具有属性的角色的一个示例。还会有其他角色:例如,管理员角色也将属于许多公司,并且还将具有其他自定义属性。
这意味着我们将建立一个层次结构或角色类:
class Role – base class
class ManagerRole : Role
List Companies
class AdministratorRole : Role
List Companies
Other properties
Run Code Online (Sandbox Code Playgroud)
我们研究了纯RBAC及其在多个系统中的实现,没有发现具有层次结构或角色的系统,每个系统都具有自定义属性。在RBAC中,角色只是权限的集合。
我们可以使用具有属性的权限(例如ManagerPermission,AdministratorPermission)对案例进行建模,但这有很多缺点,主要是我们无法直接向用户分配“公司A和B的经理”这样的角色,但是必须创建一个包含公司A和B的ManagerPermission的角色。此外,从语言的角度来看,“经理”似乎是一个“角色”(在公司中的职位),而不是“权限”。
对此主题的任何想法以及该领域的任何经验将不胜感激!
谢谢。
如果您的问题可以通过实现角色继承来解决,您可以实现它。
您的示例是采用基于属性的访问控制方式的另一个机会(例如,允许具有经理角色且为 A 公司工作的用户)。然而,实现 RBAC 系统要困难得多。
| 归档时间: |
|
| 查看次数: |
1508 次 |
| 最近记录: |