目前,.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" />
发布于 2018-04-19 22:45:27
找到了这个问题的答案,以防有人遇到这个问题:
我的解决方案可以在这里找到:https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/696
有关该主题的更多信息可在此处找到:https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/603
https://stackoverflow.com/questions/49908577
复制相似问题