我需要使用 .net core 在 swagger ui 上添加特定 header 。有没有办法包含这样的标题?
已经尝试过:
实现 IOperationFilter:
public void Apply(Operation operation, OperationFilterContext context) { if (operation.Parameters == null) operation.Parameters = new List<IParameter>(); if (operation.Parameters.All(p => p.Name != "Proxy-Authorization")) { operation.Parameters.Add(new NonBodyParameter { Name = "Proxy-Authorization", In = "header", Description = "Proxy-Authorization token", Required = true, Type = "string" }); } }
添加安全定义:
options.AddSecurityDefinition("Proxy-Authorization", new ApiKeyScheme() { In = "header", Description = "Please insert Proxy Authorization Secret into field", Name = "Proxy-Authorization", Type = "apiKey" });
两者都不起作用。当我更改 header 名称时,一切正常,但此特定 header 会从调用中删除。
您遇到过这个问题吗?怎么解决这个问题?
最佳答案
来自:https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name
禁止的 header 名称是不能以编程方式修改的 HTTP header 名称;具体来说,是 HTTP 请求 header 名称。
...
禁止 header 名称以 Proxy- 或 Sec- 开头,或由以下之一组成:
- 接受字符集
- 接受编码
- 访问控制请求 header
- 访问控制请求方法
- 连接
- 内容长度
- Cookie
- Cookie2
- 日期
- DNT
- 预计
- 主持人
- 保持事件状态
- 起源
- 代理-
- 秒-
- 推荐人
- TE
- 预告片
- 传输编码
- 升级
- 通过
关于asp.net-core - 在 swagger 中添加代理授权 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47509258/