【发布时间】:2018-09-29 05:15:51
【问题描述】:
目前 .net 核心的 swashbuckle 中的授权标头存在问题 每个端点的第一行代码是:
string auth = Request.Headers["Authorization"];
使用 postman 时,一切正常,但是当从 localhost/swagger 发出请求时,标头为空
插入断点时,标头为空值。
请求的主体是完整的,当从端点删除授权时一切正常
在我的 services.AddSwaggerGen 中添加安全定义:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "Employee Navigator",
Description = "Authorization Key: Z29vZEtleQ==",
});
c.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
Name = "Authorization",
In = "header",
Type = "apiKey",
Description = "Authorization Key: Z29vZEtleQ=="
});
c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
{
{ "Authorization", new[] { "readAccess", "writeAccess" } }
});
});
我已更新以下各项以确保没有遗漏任何内容: 我的 csproj 文件包含:
<ItemGroup>
<Folder Include="wwwroot\" />
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="2.0.1" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="2.4.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="2.4.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUi" Version="2.4.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="1.1.0" />
【问题讨论】:
标签: asp.net-core http-headers asp.net-core-2.0 asp.net-core-webapi swashbuckle