我正在尝试在asp.net样板中实现权限,但似乎无法正确处理

时间:2020-02-25 13:06:03

标签: asp.net-boilerplate abp

我收到错误消息:

未授予必需的权限。必须至少授予以下权限之一:[插件实体]

还请提供有关如何授予权限的建议。

这是我的代码:

namespace Sprint.Plug
{
    [AbpAuthorize(PermissionNames.Pages_PlugEntity)]
    public class PlugAppService: AsyncCrudAppService<PlugEntity, PlugDto, Guid>, IPlugAppService
    {        
        public PlugAppService(IRepository<PlugEntity,Guid> repository):base(repository)
        {

        }        
    }
}

namespace Sprint.Authorization
{
    public static class PermissionNames
    {
        public const string Pages_Tenants = "Pages.Tenants";

        public const string Pages_Users = "Pages.Users";

        public const string Pages_Roles = "Pages.Roles";

        public const string Pages_PlugEntity = "Pages.PlugEntity";
    }
}

namespace Sprint.Authorization
{
    public class SprintAuthorizationProvider : AuthorizationProvider
    {
        public override void SetPermissions(IPermissionDefinitionContext context)
        {
            context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
            context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
            context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
            context.CreatePermission(PermissionNames.Pages_PlugEntity, L("PlugEntity"), multiTenancySides: MultiTenancySides.Tenant);
        }

        private static ILocalizableString L(string name)
        {
            return new LocalizableString(name, SprintConsts.LocalizationSourceName);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

添加新权限后,还需要在AbpPermissions表中创建关系。另外,如果您希望在错误消息中进行本地化,则需要在coresponding .xml文件中添加记录。