13.权限认证

作者: 落地成佛 | 来源:发表于2017-08-30 11:30 被阅读22次

一、概述

二、使用

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');

相关文章

网友评论

    本文标题:13.权限认证

    本文链接:https://www.haomeiwen.com/subject/rnizdxtx.html