一.自定义一个权限实体,也可以直接用abp的PermissionNames类
二.重写PermissionChecker中的IsGrantedAsync方法
public override async Task<bool> IsGrantedAsync(string permissionName) { var dd = permissionName; var flag = false; if (AbpSession.UserId.HasValue) { var ddd = _permissionRoleRepository.GetAllList(); if (_permissionRoleRepository.GetAllList(c => c.UserId == AbpSession.UserId && c.Name == permissionName).Count() > 0) { flag = true; } } return flag; }
我这里用到的用户角色表是自己定义的permissionRole表,在这个表中查找这个用户是否有这个权限。
三.在方法的上面加上
[AbpAuthorize(PermissionNames.Pages)]
这里赋予这个方法的权限是具有pages,如果没有会报错415,没有权限