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

Asp.net web api 使用通配符名称的asp.net基于角色的授权,asp.net-web-api,authorization,azure-active-directory,claims-based-identity,asp.net-authorization,Asp.net Web Api,Authorization,Azure Active Directory,Claims Based Identity,Asp.net Authorization,我正在尝试在.net核心web api中实现基于角色的授权。我没有固定的角色名称。我必须只使用公共前缀进行验证。例如,在JWT索赔中,角色如下 "roles": [ "Approver@UK", "Approver@US", "Approver@DE", ...... ] 如果用户在声明中有approver前缀,我将允许他们访问api。 我不想将“Approver”添加为单独的角色,也不能将所有角色都放在属性中。我正在尝试下面的语法,但运气不好 [Authoriz

我正在尝试在.net核心web api中实现基于角色的授权。我没有固定的角色名称。我必须只使用公共前缀进行验证。例如,在JWT索赔中,角色如下

"roles": [
    "Approver@UK",
    "Approver@US",
    "Approver@DE",
......
  ]
如果用户在声明中有approver前缀,我将允许他们访问api。 我不想将“Approver”添加为单独的角色,也不能将所有角色都放在属性中。我正在尝试下面的语法,但运气不好

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

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

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


您可能需要创建自己的自定义授权属性。。源于系统一。以防您使用ASP.NET Core,基于策略的授权会更好。我只使用.NET Core,将尝试这样做。谢谢你的信息