Ornametn 权限概述

     Ornament中权限是用RBAC的概念进行划分的,也就是多用户对多角色,其中用户和角色不多讲,请参考其他RBAC的文章。

     Permission在Ornament中,我把它叫做许可证。他对应的关系式:

     许可证(Permission)=角色(Role)+资源(Resource)+操作(Operator)

     一个许可证只能对一种资源,而操作是属于资源的,每种不同的资源都有它自己所属的操作,如查看系统日志和查看用户信息的“查看”操作是两个不同的操作。按权限控制粒度划分,就会得下面这个图:

image

       从图中可以知道,操作是Ornament中最小的权限单元。而最大的粒度是角色。在ASP.net中,已经提供了基于角色的访问控制,而Ornament只是继续细化这种管理方法,提供了操作这种更小的单元,所以在基于Ornament开发中,应该把所权限的控制粒度控制在“操作”和资源,而不是角色。 例如过去的ASP.net全新模型中,检查是否拥有Delete user这个权限的代码可能如下:

     DeleteButton.Visable = HttpContext.User.IsInRole("RoleWithDeleteUserPermission");

而使用Ornament 就应该如下:

     DeleteButton.Visable = ornamentUser.HasRight(UserOperator.Deleted,”User”);

只有在每个功能模块下都按照操作去编写代码,那么角色,用户就会更加灵活。

原文地址:https://www.cnblogs.com/fantasylu/p/2049061.html