gpt4 book ai didi

authentication - 在多策略场景中设置默认授权策略

转载 作者:行者123 更新时间:2023-12-04 01:45:16 30 4
gpt4 key购买 nike

我正在为我的应用程序设置 2 个可能的策略

services.AddAuthorization(auth =>
{
auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
.RequireAuthenticatedUser().Build());

auth.AddPolicy("apiKey", policy =>
policy.Requirements.Add(new ApiKeyRequirement()));
});

调用我的 Controller 时必须使用 [Authorize(Policy="Bearer")] 或 [Authorize(Policy="ApiKey")]。

有没有办法将其中一个设置为默认值,然后,当我想使用它时,我可以只使用[授权],如果我想使用另一个,我指定它?

例如:

将“Bearer”设置为默认值,然后,当使用Bearer方案时,我只需要设置[Authorize],但如果我想使用“ApiKey”,则使用[Authorize(Policy="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");
});
在这种情况下,当我想使用“承载”方案时,我只需要使用 [Authorization]

关于authentication - 在多策略场景中设置默认授权策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55496678/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com