在 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.