在 ASP.net 核心网站 api 中添加自定义 Header (Swashbuckle.AspNetCore -- Version="5.0.0-rc4")
Add Custom Header in ASP.net core web api (Swashbuckle.AspNetCore -- Version="5.0.0-rc4")
我想添加自定义 header 以招摇。我正在使用 asp.net core 3.0 和 swagger 5.0.0-rc4。
它会类似于 Key: Value 我的中间件会收到。
public class MyHeaderFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "Authorization",
In = ParameterLocation.Header,
Description = "Authenticate API Key",
Required = false,
Schema = new OpenApiSchema
{
Type = "String",
Default = new OpenApiString("Bearer")
}
});
}
}
您应该在 Startup.cs 注册:
// Startup.cs
services.AddSwaggerGen(c =>
{
...
c.OperationFilter<AuthResponsesOperationFilter>();
};
此外,根据 this and this 线程,您似乎正在通过授权 header:
The Authorization header parameter defined in /auth/credentials and /system/info won't be used because OpenAPI Specification says that tools should ignore explicit header parameters named Authorization. The Authorization header should be defined as a security scheme instead.
我想添加自定义 header 以招摇。我正在使用 asp.net core 3.0 和 swagger 5.0.0-rc4。 它会类似于 Key: Value 我的中间件会收到。
public class MyHeaderFilter : IOperationFilter
{
public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
if (operation.Parameters == null)
operation.Parameters = new List<OpenApiParameter>();
operation.Parameters.Add(new OpenApiParameter
{
Name = "Authorization",
In = ParameterLocation.Header,
Description = "Authenticate API Key",
Required = false,
Schema = new OpenApiSchema
{
Type = "String",
Default = new OpenApiString("Bearer")
}
});
}
}
您应该在 Startup.cs 注册:
// Startup.cs
services.AddSwaggerGen(c =>
{
...
c.OperationFilter<AuthResponsesOperationFilter>();
};
此外,根据 this and this 线程,您似乎正在通过授权 header:
The Authorization header parameter defined in /auth/credentials and /system/info won't be used because OpenAPI Specification says that tools should ignore explicit header parameters named Authorization. The Authorization header should be defined as a security scheme instead.