gpt4 book ai didi

c# - 如何将不记名授权 header 附加到 swagger 请求。虚张声势 v 5.0.0-rc2

转载 作者:行者123 更新时间:2023-11-30 15:13:39 33 4
gpt4 key购买 nike

我无法获取输入到 swagger UI 中的不记名授权 header 以附加到发送的请求。我在 UI 上有授权选项,但它实际上什么都不做

我浏览并查看了很多教程,但看起来 swagger 可能已经改变了它们附加标题的方式,所以我很挣扎。我非常有信心我需要使用“AddSecurityRequirement()”函数,但我知道如何创建要传递给它的正确对象。

services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Message Service", Version = "v1" });

var security = new Dictionary<string, IEnumerable<string>>
{
{ "Bearer", new string[] { } },
};

c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
});

// Im not sure how to get the token to apply to the header being called. It will get the token, but it doesnt apply it to the request

c.AddSecurityRequirement(/*What goes here???? I tried passing security object above but no dice.*/);

var xmlDocFile = Path.Combine(AppContext.BaseDirectory, "MessageService.xml");
if (File.Exists(xmlDocFile))
{
var comments = new XPathDocument(xmlDocFile);
c.OperationFilter<XmlCommentsOperationFilter>(comments);
c.SchemaFilter<XmlCommentsSchemaFilter>(comments);
}
});

我希望 header 附加到请求,但它没有附加,所以我从我的 api 收到 401。

最佳答案

要添加安全要求,您通常需要传入一个新的 OpenApiSecurityRequirement 实例。根据您当前的设置,以下内容可能会满足您的要求。

c.AddSecurityRequirement(new OpenApiSecurityRequirement 
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] {}
}
});

关于c# - 如何将不记名授权 header 附加到 swagger 请求。虚张声势 v 5.0.0-rc2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57484666/

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