13.权限认证

一、概述

二、使用

2.1定义权限

public class MyAuthorizationProvider : AuthorizationProvider
{
    public override void SetPermissions(IPermissionDefinitionContext context)
    {
        var administration = context.CreatePermission("Administration");
        var userManagement = administration.CreateChildPermission("Administration.UserManagement");
        userManagement.CreateChildPermission("Administration.UserManagement.CreateUser");
        var roleManagement = administration.CreateChildPermission("Administration.RoleManagement");
    }
}

2.2注入权限

Configuration.Authorization.Providers.Add<MyAuthorizationProvider>()

2.3调用

2.3.1 通过特性验证权限

[AbpAuthorize("Administration.UserManagement.CreateUser")]
public void CreateUser(CreateUserInput input)
{
//如果用户没有被授予 "Administration.UserManagement.CreateUser" 权限,那么他不能执行这个方法.
}

2.3.2 使用IPermissionChecker

public void CreateUser(CreateOrUpdateUserInput input)
{
    //PermissionChecker注入进来就可以引用了
    if (!PermissionChecker.IsGranted("Administration.UserManagement.CreateUser"))
    {
          throw new AbpAuthorizationException("You are not authorized to create user!");
    }
}
public void CreateUser(CreateOrUpdateUserInput input)
{
    //没有权限自动抛异常
    PermissionChecker.Authorize("Administration.UserManagement.CreateUser");
}

2.3.3在Razor视图中使用

ABP在视图基类中定义了 IsGranted 方法来检查权限

@if (IsGranted("Administration.UserManagement.CreateUser"))
{
    <button id="CreateNewUserButton" class="btn btn‐primary"><i class="fa fa‐plus"></i>@L("CreateNewUser")</button>
}

2.3.4 客户端脚本检查权限

abp.auth.isGranted('Administration.UserManagement.CreateUser');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,907评论 25 709
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,118评论 6 342
  • ABP入门系列目录——学习Abp框架之实操演练源码路径:Github-LearningMpaAbp 1.引言 完成...
    圣杰阅读 28,992评论 13 19
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,805评论 19 139
  • 2016年九月二十日,阳光明媚秋风萧瑟。不知是头一晚约“周公”聊得很嗨或是美梦中的情景相续?虽然一点都不记得了,但...
    观婵阅读 1,765评论 0 0

友情链接更多精彩内容