我正在为我的应用设置2种可能的政策
services.AddAuthorization(auth =>
{
auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
.RequireAuthenticatedUser().Build());
auth.AddPolicy("apiKey", policy =>
policy.Requirements.Add(new ApiKeyRequirement()));
});
在调用我的控制器时,必须使用[Authorize(Policy =“ Bearer”)]或[Authorize(Policy =“ ApiKey”)]。
有什么方法可以将其中之一设置为默认值,然后,当我要使用它时,我只能使用[Authorize],如果要使用另一个,请指定它?< / p>
例如:
将“ Bearer”设置为默认值,然后,在使用Bearer方案时,我只需要设置[Authorize],但是如果我想使用“ ApiKey”,则可以使用[Authorize(Policy =“ ApiKey “)]
找不到任何示例。
答案 0 :(得分:0)
找到了可以设置为默认值的属性:
services.AddAuthorization(auth =>
{
auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
.RequireAuthenticatedUser().Build());
auth.AddPolicy("apiKey", policy =>
policy.Requirements.Add(new ApiKeyRequirement()));
auth.DefaultPolicy = auth.GetPolicy("Bearer");
});
在这种情况下,当我想使用“承载”方案时,我只需要使用[Authorization]