此处演示为MVC项目,同样权限定义需要到Application中才能在获取API时进行权限验证
一、打开Sample.CoreAuthorizationPermissionNames.cs增加授权名称
代码
//Controller权限名称 public const string Pages_Address = "Pages.Address"; //Action权限名称 public const string Pages_Address_Delete = "Pages.Address_Delete";
二、打开Sample.CoreAuthorizationBlogsAuthorizationProvider.cs创建权限
代码
context.CreatePermission(PermissionNames.Pages_Address, L("Address")) //增加Controller权限
.CreateChildPermission(PermissionNames.Pages_Address_Delete,L("AddressDelete")); //增加Action子权限
三、Controller授权
四、增加新角色并取消联系人及删除权限
五、增加新用户,并授权
七、新用户登录Controller权限测试,菜单不显示
八、重新Controller授权,只取消删除权限,登录测试删除权限默认权限不足会跳转登录页
九、权限不足会跳转登录页,也可在Action内部判断是否有权限
//Action权限 //[AbpMvcAuthorize(PermissionNames.Pages_Address_Delete)] public async Task<IActionResult> Delete(int i) { //判断是否有action权限 if (await PermissionChecker.IsGrantedAsync(PermissionNames.Pages_Address_Delete)) { return Content("执行完毕"); } return Content("权限不足"); }