小编典典

如何删除 ASP.Net MVC 默认 HTTP 标头?

all

我正在使用的 MVC 应用程序中的每个页面都会在响应中设置这些 HTTP 标头:

X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0

如何防止这些显示?


阅读 118

收藏
2022-07-16

共1个答案

小编典典

X-Powered-By是 IIS 中的自定义标头。从 IIS 7 开始,您可以通过将以下内容添加到您的 中来删除它web.config

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <remove name="X-Powered-By" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

此标头也可以根据您的需要进行修改,有关更多信息,请参阅http://www.iis.net/ConfigReference/system.webServer/httpProtocol/customHeaders


添加这个以web.config摆脱X-AspNet-Version标题:

<system.web>
  <httpRuntime enableVersionHeader="false" />
</system.web>

最后,要在事件中删除X-AspNetMvc-Version、编辑Global.asax.cs和添加以下内容Application_Start

protected void Application_Start()
{
    MvcHandler.DisableMvcResponseHeader = true;
}

您还可以在运行时Application_PreSendRequestHeaders通过Global.asax.cs.
如果您的标头值是动态的,这将很有用:

protected void Application_PreSendRequestHeaders(object source, EventArgs e)
{
      Response.Headers.Remove("foo");
      Response.Headers.Add("bar", "quux");
}
2022-07-16