asp.net 使用通配符名称的基于角色的授权

asp.net role based authorization with wildcard names

我正在尝试在 .net 核心 web 中实现基于角色的授权 api。我没有固定的角色名称。我必须仅使用通用前缀进行验证。例如,在 JWT 声明中,角色将如下所示。

"roles": [
    "Approver@UK",
    "Approver@US",
    "Approver@DE",
......
  ]

如果用户在声明中有批准者前缀,我会允许他们访问 api。 我不想将 "Approver" 添加为单独的角色,我不能将所有角色都放在属性中。我正在尝试以下语法,但没有成功。

 [Authorize(Roles = "Approver@*")]

我如何通过前缀或类似条件而不是完整的角色名称来验证角色。

示例可在动态授权策略下找到。

https://github.com/aspnet/AuthSamples/tree/master/samples/CustomPolicyProvider