ASP.NET Core Web API迁移至.NET 10后,配置OpenAPI/Swagger UI自定义Authorization Header遇阻
我最近把一个Web API项目从.NET Framework迁移到了.NET 10,项目本身已经能正常运行了,但在配置OpenAPI(依赖包是Microsoft.AspNetCore.OpenApi 10.0.3)和SwaggerUI(依赖包Swashbuckle.AspNetCore.SwaggerUI 10.1.4)的文档时碰到了问题。
我尝试实现了一个IOpenApiDocumentTransformer,看起来这个组件已经被系统识别到了,但生成的Authorization Header格式不符合预期。我想要的正确格式是这样的:
Authorization: CUSTOMSCHEME key="13431"
下面是我目前写的代码:
public async Task TransformAsync(OpenApiDocument document, OpenApiDocumentTransformerContext context, CancellationToken cancellationToken) { var authenticationSchemes = await authenticationSchemeProvider.GetAllSchemesAsync(); if (authenticationSchemes.Any(authScheme => authScheme.Name == "CustomScheme")) { var securitySchemes = new Dictionary<string, IOpenApiSecurityScheme> { ["CustomScheme"] = new OpenApiSecurityScheme { Type = SecuritySchemeType.ApiKey, Scheme = "CustomScheme", In = ParameterLocation.Header, BearerFormat = "key=\"api_key\"" } }; document.Components ??= new OpenApiComponents(); document.Components.SecuritySchemes = securitySchemes; } }
我搞不太清楚该怎么配置OpenApiSecurityScheme才能生成我需要的Header格式,希望有经验的朋友能给我一些帮助,谢谢!
备注:内容来源于stack exchange,提问作者ksja
相关产品推荐
相关产品推荐

