我正在使用 Swashbuckle.AspNetCore 5.0.0 为我的 .Net Core WebApi 项目生成 Swagger 文档,并且在大多数情况下,一切正常。
我已经使用 ApiKey 设置了一些简单的身份验证,效果很好。
我现在遇到问题的地方是让 Swagger 将 ApiKey 添加到我的请求标头中。我按照说明添加了 ApiKey 安全定义/要求,如这些不同的帖子中所述:
Swashbuckle.AspNetCore 请求的空授权标头
如何强制 Swagger/Swashbuckle 附加 API 密钥?
但是,ApiKey 值永远不会添加到 Header 中。
这就是我在启动时所拥有的:
c.AddSecurityDefinition("ApiKey",
new OpenApiSecurityScheme
{
Description = "ApiKey must appear in header",
Type = SecuritySchemeType.ApiKey,
Name = Constants.ApiKeyHeaderName,
In = ParameterLocation.Header
});
Run Code Online (Sandbox Code Playgroud)
和
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Name = Constants.ApiKeyHeaderName,
Type = SecuritySchemeType.ApiKey,
In = ParameterLocation.Header
},
new List<string>()}
});
Run Code Online (Sandbox Code Playgroud)