ABP框架 授权
尽管IsGranted只是简单的返回true或false,但你也可以编写任何逻辑(IsGranted也有异步版本)。如果你像上面那样,只是简单的检查一个许可并抛出一个异常,你可以使用Authorize方法: public void CreateUser(CreateOrUpdateUserInput input) { PermissionChecker.Authorize("Administration.UserManagement.CreateUser"); //一个用户如果没有经过“Administration.usermanagerment.CreateUser”许可的允许,是不可以到达这里的。 } 由于授权的广泛使用,ApplicationService和一些通用的基类注入并定义了PermissionChecker属性,因此,在应用服务类里,不需要注入就可以使用许可检查器。
在Razor视图里 基视图类已经定义了IsGranted方法来检查当前用户是否有许可证,因此,我们可以有条件的渲染视图,例如: @if (IsGranted("Administration.UserManagement.CreateUser")) { <button id="CreateNewUserButton" class="btn btn-primary"><i class="fa fa-plus"></i> @L("CreateNewUser")</button> }
客户端(Javascript) 在客户端里,我们可以使用定义在abp.auth命名空间里的API,大部分情况下,我们需要检查当前用户是否有一个指定的许可(使用许可名称),例如: abp.auth.isGranted('Administration.UserManagement.CreateUser'); 你也可以使用abp.auth.grantedPermissions获取所有授予权限或abp.auth.allPerssions获取所有可用的许可名称。在运行时里查看abp.auth命名空间的其它API。
许可管理器 我们可能会用到许可的定义,这里可以注入并使用IPermissionManager。
(编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |