Swagger中断了IAuthorizationPolicyProvider的实现

问题描述 投票:0回答:1

[当我尝试为API(documentation here)创建自定义策略提供程序时,我注意到了,SwaggerUI中断了,但是如果我直接将策略添加到服务配置中就可以了。

API仍可正常使用,因为我可以成功调用API端点,但是谁能解释为什么Swagger工具将不再显示?当浏览器尝试打开localhost:[port] /index.html页面时,出现401错误。

asp.net-mvc asp.net-core swagger swagger-ui
1个回答
0
投票

因为我的设置具有多个策略,所以当尝试运行Swagger UI扩展时,它在IAuthorizationPolicyProvider的实现中利用了GetFallbackPolicyAsync()方法,根据文档的说明,当存在组合策略时,该方法被称为。虽然我分别在每个控制器方法上分别明确指定了身份验证级别,但是Swagger UI似乎正在使用后备策略来确定我是否具有访问权限,并且由于我的策略仅限于身份验证,因此启动时不会传递该身份验证,我必须将后备策略设置为null:

public Task<AuthorizationPolicy> GetFallbackPolicyAsync()
{
    return Task.FromResult<AuthorizationPolicy>(null);
}
© www.soinside.com 2019 - 2024. All rights reserved.