此处演示为MVC项目,同样权限定义需要到Application中才能在获取API时进行权限验证

一、打开Sample.Core\Authorization\PermissionNames.cs增加授权名称

ABP 极简入门教程(三 权限)

代码

        //Controller权限名称
        public const string Pages_Address = "Pages.Address";
        //Action权限名称
        public const string Pages_Address_Delete = "Pages.Address_Delete";

二、打开Sample.Core\Authorization\BlogsAuthorizationProvider.cs创建权限

ABP 极简入门教程(三 权限)

代码

context.CreatePermission(PermissionNames.Pages_Address, L("Address"))    //增加Controller权限
.CreateChildPermission(PermissionNames.Pages_Address_Delete,L("AddressDelete"));  //增加Action子权限

三、Controller授权

ABP 极简入门教程(三 权限)

四、增加新角色并取消联系人及删除权限

ABP 极简入门教程(三 权限)

五、增加新用户,并授权

ABP 极简入门教程(三 权限)

ABP 极简入门教程(三 权限)

七、新用户登录Controller权限测试,菜单不显示

ABP 极简入门教程(三 权限)

八、重新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("权限不足");
        }

 

相关文章: