原文:https://blog.csdn.net/mliu/article/details/83064456
https://blog.csdn.net/haojy826/article/details/105986119
ABP中的权限及角色管理可以通过定制完成很多复杂的应用,但是其生成的基本版本,也可以完成基本的权限定制分配及管理工作,本文分为三个部分就此进行介绍分析。
- Premissions
Premissions定义的是系统中的功能模块,是权限管理的最小单位,由此决定权限管理的颗粒度,其面向的是程序中的各类功能,需要事先在程序中定义好。
名称定义:相关的内容涉及到如下模块
(1)在Core项目中的Authorization目录下的PermissionNames.cs文件中对相应的命名加以定义。
(2)在Core项目中的Authorization目录下的XXXAuthorizationProvider.cs文件中增加刚才定义的Permission Name。
具体应用:在模块及方法的入口增加标记
(1)系统菜单: 在Web项目中App_Start目录下的XXXNavigationProvider.cs文件中,增加如下节所述内容
requiredPermissionName: PermissionNames.Pages_Users
(2)MVC控制:在Control的Action方法前加上如下内容
[AbpAuthorize("Pages.Business.Create")]
public void CreateBusiness(CreateInput input) { ... }
如果只是要求登录用户,可只使用[AbpAuthorize],这样系统会检查当前用户是否已经登录。
- Roles
角色的定义保存于表AbpRoles中,每个Role对应的权限定义保存于表AbpPermissions中.
- Users
用户的定义保存于表AbpUsers中,每个User对应的角色定义保存于表AbpUserRoles中.