一、概述
無
二县恕、使用
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" 權限东羹,那么他不能執(zhí)行這個方法.
}
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');