.net core 检查索赔数组中的特定值

.net core 检查索赔数组中的特定值,.net-core,blazor,.net Core,Blazor,如果我有 services.AddAuthorization(config => { config.AddPolicy("IsDeveloper", policy => policy.RequireClaim("developer","true")); }); 我的JWT令牌包含 "permissions": [

如果我有

services.AddAuthorization(config =>
            {
                 config.AddPolicy("IsDeveloper", policy => policy.RequireClaim("developer","true"));                                
            });
我的JWT令牌包含

"permissions": [        
    "customer_get",
    "customer_update",
    "customer_create",
    "customer_delete",
    "developer"
  ]
然后我尝试用以下方法保护我的blazor站点:

@attribute [Authorize(Policy = "IsDeveloper")]

    <AuthorizeView Policy="IsDeveloper">
        <p>You can only see this if you're an admin or superuser.</p>
    </AuthorizeView>

所以我可以用ofc。只需将它们添加为,Name=true。。但是,尽管数组更容易阅读

IMO,但您应该使用
Authorize
属性xor
AuthorizeView
而不是同时使用两者。您的设置看起来不错,但您是否使用
AddAuthorizationCore
AddAuthorization
?@aguafrommars您是对的,我只是测试了一下,看看它是否改变了任何东西。我正在使用AddAuthorization。请用相关代码更新您的问题。您可以使用
策略。RequireAssertion
来代替或创建策略处理程序
"permissions": "developer"