asp.net-core - 在 swagger 中启用身份验证

标签 asp.net-core asp.net-web-api swagger swagger-ui

我创建了一个在.net6上运行的asp.net core空项目。当我尝试在 swagger 中启用身份验证时遇到一个问题。 Swagger UI 按预期运行,唯一的问题是每当我单击 swagger UI 上的“授权”绿色按钮时,它就会弹出,但显示“未知安全定义类型”,并给我两个选项“授权”和“关闭”。它不会显示在可用授权 Bearer(http,Bearer) 下,并允许我输入 jwt 值。我遇到了这个article这涉及到持票人身份验证,但对我来说没有太大帮助。我是否在 .AddSwaggerGen() 中遗漏了某些内容?

enter image description here

builder.Services.AddAuthorization();

builder.Services.AddSwaggerGen(options => 
{
    options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
    {
        Scheme = "Bearer",
        BearerFormat = "JWT",
        In = ParameterLocation.Header,
        Name = "Authorization",
        Description = "Bearer Authentication with JWT Token",
        Type = SecuritySchemeType.Http
    });
    options.AddSecurityRequirement(new OpenApiSecurityRequirement
    {
        {
            new OpenApiSecurityScheme
            {
                Reference = new OpenApiReference
                {
                    Id = "Bearer",
                    Type = ReferenceType.SecurityScheme
                }
            },
            new List<string>()
        }
    });
});

var app = builder.Build();
app.UseAuthorization();
app.UseAuthentication();
......

最佳答案

我认为Scheme应该是“bearer”(小写b)

Scheme = "bearer",

关于asp.net-core - 在 swagger 中启用身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71622325/

相关文章:

asp.net-core - ASP.Net Core API 自托管日志记录到文件

swagger - 使用 Swashbuckle Asp.Net Core for ReDoc 添加 x-logo 供应商扩展

.net - API 获取和浏览器崩溃后 Swagger UI 卡住

c# - ASP.NET Web API 控制成功代码(200 与 201)

c# - ASP.NET Identity Web Api 2 与 MVC 5 登录 Cookie

c# - .NET 中的安全 Azure 移动服务 - 如何获取 userId

asp.net-core - Swagger 因循环模型引用而崩溃

c# - 没有 [ServiceFilter] 或 [TypeFilter] 的过滤器中的 Asp.net Core 依赖项注入(inject)

c# - asp.net core 1 appsettings.production.json 不更新连接字符串

javascript - 使用标签 data-* 实现 Ajax 调用