【发布时间】:2020-12-03 22:27:52
【问题描述】:
我有这样设置的自定义授权方案:
services.AddAuthentication("ClientApp")
.AddScheme<ClientAppAuthenticationOptions, ClientAppAuthenticationHandler>("ClientApp", null);
然后我有以下 NSwag OpenAPI 文档配置:
services.AddOpenApiDocument((settings, provider) =>
{
settings.DocumentName = "openapi";
settings.AddSecurity("ClientApp", Enumerable.Empty<string>(), new OpenApiSecurityScheme
{
Type = OpenApiSecuritySchemeType.ApiKey,
Description = "Authentications used for client apps, such as Mmcc.Stats.TpsMonitor",
Name = "X-Auth-Token",
In = OpenApiSecurityApiKeyLocation.Header
});
settings.OperationProcessors.Add(
new AspNetCoreOperationSecurityScopeProcessor("ClientApp")
);
// ...
}
我在我的控制器中使用[AllowAnonymous] 和[Authorize(AuthenticationSchemes = "ClientApp")] 修饰了动作,但是NSwag 将我的所有端点标记为在ReDoc UI 中要求ClientApp 授权,而不考虑修饰符。为什么?
【问题讨论】:
标签: c# asp.net-core swagger openapi nswag