gpt4 book ai didi

c# - 无授权 header

转载 作者:太空宇宙 更新时间:2023-11-03 20:57:14 26 4
gpt4 key购买 nike

我正在创建一个 ASP.NET Core 2.0 Web API,一切都运行良好,但我遇到了 Swashbuckle 问题。我已经为我的 API 添加了基本身份验证,并为 Swasbuckle 启用了基本方案:

public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
c.AddSecurityDefinition("Basic", new BasicAuthScheme { Description = "Basic authentication" });
});

services.AddMvc();
}

当我访问 SwaggerUI 时一切正常,我看到了授权方案并且可以添加用户名和密码。调用任何 api 时都会出现问题,授权 header 永远不会发送到 API Controller 。

我是否需要做任何其他事情来告诉 Swasbuckle 它必须发送授权 header ?

最佳答案

好吧,我终于找到了缺少的东西。您需要添加文档过滤器才能让 Swashbuckle 发送授权:

public class BasicAuthFilter : IDocumentFilter
{
public void Apply(SwaggerDocument swaggerDoc, DocumentFilterContext context)
{
var securityRequirements = new Dictionary<string, IEnumerable<string>>()
{
{ "Basic", new string[] { } }
};

swaggerDoc.Security = new[] { securityRequirements };
}
}

//In the Startup class...
public void ConfigureServices(IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
c.AddSecurityDefinition("Basic", new BasicAuthScheme { Description = "Basic authentication" });
c.DocumentFilter<BasicAuthFilter>();
});

services.AddMvc();
}

关于c# - 无授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49223560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com