在多个策略场景中设置默认授权策略
Seting a Default Authorization Policy on multiple policies scenario
我正在为我的应用程序设置 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")]。
有什么方法可以将其中之一设置为默认值,然后,当我想使用它时,我可以只使用[授权],如果我想使用另一个,我指定它?
例如:
设置"Bearer"为默认,然后,当使用Bearer方案时,我只需要设置[Authorize],但如果我想使用"ApiKey",我通过[授权(策略="ApiKey")]
找不到任何示例。
DefaultPolicy
属性 可让您设置默认值:
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");
});
在这种情况下,当我想使用“Bearer”方案时,我只需要使用[Authorization]
我正在为我的应用程序设置 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")]。
有什么方法可以将其中之一设置为默认值,然后,当我想使用它时,我可以只使用[授权],如果我想使用另一个,我指定它?
例如:
设置"Bearer"为默认,然后,当使用Bearer方案时,我只需要设置[Authorize],但如果我想使用"ApiKey",我通过[授权(策略="ApiKey")]
找不到任何示例。
DefaultPolicy
属性 可让您设置默认值:
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");
});
在这种情况下,当我想使用“Bearer”方案时,我只需要使用[Authorization]