首页 > 解决方案 > Asp.Net BoilerPlate - PermissionManager.GetAllPermissions() 未获得新权限

问题描述

我从 BoilerPlate 的网站上用 angular 创建了一个默认解决方案。我需要创建一个新权限以分配给用户。所以我在我的授权提供者中添加了它:

public class PilotoConciliacaoAuthorizationProvider : AuthorizationProvider
{
    public override void SetPermissions(IPermissionDefinitionContext context)
    {
        context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
        context.CreatePermission(PermissionNames.Pages_Users_Activation, L("UsersActivation"));
        context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
        context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
        context.CreatePermission(PermissionNames.Pages_CadastrarPdv, L("TituloCadastrarPdv"), multiTenancySides: MultiTenancySides.Host);
    }

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

在这种情况下,它是 PermissionNames.Pages_CadastrarPdv。我已经创建了常量和可本地化的资源。

但是当我运行 GetAllPermissions 服务时,它只获得了其中的 3 个:

"result": {
    "items": [
      {
        "name": "Pages.Roles",
        "displayName": "Funções",
        "description": null,
        "id": 0
      },
      {
        "name": "Pages.Users.Activation",
        "displayName": "Users activation",
        "description": null,
        "id": 0
      },
      {
        "name": "Pages.Users",
        "displayName": "Usuários",
        "description": null,
        "id": 0
      }
    ]
  },
  "targetUrl": null,
  "success": true,
  "error": null,
  "unAuthorizedRequest": false,
  "__abp": true

我错过了什么?

提前致谢。

标签: aspnetboilerplateasp.net-boilerplate

解决方案


发生的情况是您仅为主机用户指定了此权限,因为我可以看到您已作为租户登录,因此您不会看到此权限也不会看到租户权限。

如果您需要激活 MultiTenancy 并且您需要对所有用户具有此权限,则您必须删除这部分权限 especification 并将其放置如下:

    context.CreatePermission(PermissionNames.Pages_CadastrarPdv, L("TituloCadastrarPdv"));

如果您不需要使用 MultiTenancy,可以在以下位置禁用它:

YourProjectName.Core\YourProjectNameConsts.cs在那里你会找到一个变量

public const bool MultiTenancyEnabled = true;如果您不需要使用它,请将其更改为 false。

您可以在此处调用 ready 整个文档Authorization

AspnetBoilerplate - 授权


推荐阅读