【发布时间】:2022-01-10 18:22:12
【问题描述】:
我正在开发一个 API ASP.Net Core (net6.0),其中通过请求传入密钥 (X-API-KEY) 和应用程序 ID (X-APP-ID) 来实现身份验证请求标头。
https://swagger.io/docs/specification/authentication/api-keys/ 的“多个 API 密钥”部分对此进行了描述
下面是我在 Program.cs 中配置它的代码。
builder.Services.AddSwaggerGen(c =>
{
c.AddSecurityDefinition("apiKey", new OpenApiSecurityScheme()
{
Description = "API KEY",
Name = "X-API-KEY",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
});
c.AddSecurityDefinition("appId", new OpenApiSecurityScheme()
{
Description = "APP ID",
Name = "X-APP-ID",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement()
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "apiKey"
}
},
Array.Empty<string>()
},
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "appId"
}
},
Array.Empty<string>()
}
});
});
当前的配置结果如下,它实际上可以工作,但是在一个部分中只有一个“授权”和“关闭”按钮和两个文本框会更好。
我希望我只是缺少对配置的调整。非常感谢任何帮助。
【问题讨论】:
标签: asp.net-core asp.net-web-api swagger-ui openapi swashbuckle.aspnetcore