如何解决如何为每个请求添加通用标头Swagger 和 Swashbuckle
我使用 Swashbuckle 5.6 版和 .NET Framework。但我的授权是在侧服务器上(另一个仅用于授权的 Web API 项目)。 我想为我的用户提供一种简单的方法来为 Swagger UI 上的每个请求添加一个身份验证令牌。目前,我可以通过 Chrome 扩展程序(如 this 但这对用户来说显然不是。我更喜欢在没有 Chrome 扩展程序的情况下拥有所有功能。有没有更好的办法?
更新
所以,我的问题似乎没有正确表述。我将通过添加新的细节来修复它。首先,我想展示我到底需要什么。请查看 swagger 授权弹出窗口的 example 屏幕:
我正在尝试执行以下操作:
- 实施
IOperationFilter
public class AuthorizationHeaderParameterOperationFilter : IOperationFilter
{
public void Apply(Operation operation,SchemaRegistry schemaRegistry,ApiDescription apiDescription)
{
if (operation.security == null)
{
operation.security = new List<IDictionary<string,IEnumerable<string>>>();
}
var test = new Dictionary<string,IEnumerable<string>>();
test.Add("test",new List<string>
{
"field1",});
operation.security.Add(test);
}
}
- 将此添加到我的 swagger 配置中:
public static void Register()
{
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.RootUrl(ResolveBasePath);
c.PrettyPrint();
c.IgnoreObsoleteActions();
c.UseFullTypeNameInSchemaIds();
c.DescribeAllEnumsAsStrings();
c.OperationFilter<AuthorizationHeaderParameterOperationFilter>();
c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
})
.EnableSwaggerUi(c =>
{
c.DocExpansion(DocExpansion.None);
});
}
结果我看到了变化,但有些奇怪。是的,我看到出现了授权标志:
但是如果我点击它,我会看到这个空窗口:
完全不明白怎么设置
var test = new Dictionary<string,});
operation.security.Add(test);
与窗口绑定。请帮忙。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。