我需要隐藏由 ASP.NET 和 IIS 生成并在来自 ASP.NET WebAPI 服务的响应中返回的某些 header 。我需要隐藏的标题是:
该服务早期托管在 WCF 中,伪装是通过订阅 PreSendRequestHeaders 并操作 HttpContext.Current.Response.Headers 在 HttpModule 中完成的。使用 ASP.NET WebAPI 现在一切都基于任务,因此 HttpContext.Current 为空。我尝试插入一个消息处理程序并操作返回的 HttpResponseMessage,但该阶段上不存在 header 。 X-Powered-By 可以在 IIS 设置中删除,但是删除其余部分的建议方法是什么?
最佳答案
问题是每一个都是在不同的点添加的:
Server
: 由 IIS 添加。虽然您似乎已经使用 HttpModule 将其删除,但不确定是否可以将其关闭。 X-AspNet-Version
: 由System.Web.dll 在Flush 时添加在HttpResponse
类(class)X-AspNetMvc-Version
: 添加者 MvcHandler
在 System.Web.dll 中。它可以被覆盖,所以这个应该没问题。 X-Powered-By
由 IIS 但可以像你说的那样关闭。 我认为你最好的选择仍然是使用 HttpModules。
关于asp.net-web-api - 从响应中删除 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11155176/