Authentication 在单个操作上强制实施多种形式的身份验证

Authentication 在单个操作上强制实施多种形式的身份验证,authentication,asp.net-core-3.1,Authentication,Asp.net Core 3.1,我正在创建一个API,我将把它放在Azure的API管理后面。为了保护API管理->API,我将使用证书身份验证。除此之外,我想使用JWT承载令牌。我知道我可以使用API管理的策略来验证承载令牌,但我喜欢在代码中进行验证,因为如果我们离开Azure,那么就不需要重复验证了。考虑到这一点,我对控制器做了以下操作: [Authorize(Global.Constants.AppConfiguration.CertificatePolicyName)] [Authorize(Global.Consta

我正在创建一个API,我将把它放在Azure的API管理后面。为了保护API管理->API,我将使用证书身份验证。除此之外,我想使用JWT承载令牌。我知道我可以使用API管理的策略来验证承载令牌,但我喜欢在代码中进行验证,因为如果我们离开Azure,那么就不需要重复验证了。考虑到这一点,我对控制器做了以下操作:

[Authorize(Global.Constants.AppConfiguration.CertificatePolicyName)]
[Authorize(Global.Constants.AppConfiguration.BearerPolicyName)]
public class RedactedHub : HubBase<Redacted>
[授权(Global.Constants.AppConfiguration.CertificatePolicyName)]
[授权(Global.Constants.AppConfiguration.BearPolicyName)]
公共类RedactedHub:HubBase
这似乎是一个“或”,而不是“和”,我正在寻找。是执行“和”以创建同时验证两者的自定义身份验证策略的唯一方法,还是有OOTB方法


我使用的是asp.net core 3.1。

看起来我可以使用AuthorizationPolicyBuilder,它有一个适合我需要的合并操作。这意味着我需要特别装饰每个控制器/集线器/操作,但这很好。得到了我想要的东西