asp.net-web-api - 从响应中删除 header

标签 asp.net-web-api wcf-web-api

我需要隐藏由 ASP.NET 和 IIS 生成并在来自 ASP.NET WebAPI 服务的响应中返回的某些 header 。我需要隐藏的标题是:

  • 服务器
  • X-AspNet-版本
  • X-AspNetMvc-版本
  • X-Powered-By

  • 该服务早期托管在 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/

    相关文章:

    ASP.NET CORE 2.1 FromRoute 和 FromBody 模型绑定(bind)

    c# - 让 WebAPI2 中的 PUT 和 DELETE 动词在 IIS 8.5 上工作

    c# - 在 DelegatingHandler ASP.NET Web API 中添加 BearerToken 授权 header

    javascript - 如何在html中显示多个json结果

    wcf-web-api - TestClient 去哪儿了?

    c# - 如何在 ASP.NET Web API 中配置缓冲区大小和最大消息大小

    wcf - 使用 WCF WebApi 的异步 REST 服务

    c# - 在 IIS 中部署后 Web API 访问被拒绝错误

    c# - 使用 Entity Framework 4 使用 Web Api 返回复杂对象

    html - 如何从 WCF WebAPI WebGet 返回原始 html