从JWT中存储的角色设置授权策略

从JWT中存储的角色设置授权策略,jwt,authorization,asp.net-core-3.1,Jwt,Authorization,Asp.net Core 3.1,我已经建立了一个Asp.NETCore3.1API应用程序,将令牌授予用户 用户可以有多个角色。JWT在索赔“角色”下包含这些角色: 角色:[“财务”、“经理”] 身份验证工作正常,但我正在尝试使用以下方法设置授权: services.AddAuthorization(options => { options.AddPolicy("Admin", policy => policy.RequireRole("Admin")); }

我已经建立了一个Asp.NETCore3.1API应用程序,将令牌授予用户

用户可以有多个角色。JWT在索赔“角色”下包含这些角色:

角色:[“财务”、“经理”]

身份验证工作正常,但我正在尝试使用以下方法设置授权:

services.AddAuthorization(options =>
        {
            options.AddPolicy("Admin", policy => policy.RequireRole("Admin"));
        });

我的问题是,这个政策必须阅读“管理员”的存在,这是“角色”声明的一部分。如何制定在声明数组中查找元素的策略?我曾尝试过Requireclain,也尝试过将其作为策略进行链接。Requireclain(“角色”)。Requireclain(“管理”)无效。

我通过以下重载解决了此问题:

services.AddAuthorization(options =>
            {
                options.AddPolicy("Admin", policy => policy.RequireClaim("Roles", "Admin"));
            });