我正在使用的 MVC 应用程序中的每个页面都会在响应中设置这些 HTTP 标头:
X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 X-AspNetMvc-Version: 2.0
如何防止这些显示?
X-Powered-By是 IIS 中的自定义标头。从 IIS 7 开始,您可以通过将以下内容添加到您的 中来删除它web.config:
X-Powered-By
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标题:
X-AspNet-Version
<system.web> <httpRuntime enableVersionHeader="false" /> </system.web>
最后,要在事件中删除X-AspNetMvc-Version、编辑Global.asax.cs和添加以下内容Application_Start:
X-AspNetMvc-Version
Global.asax.cs
Application_Start
protected void Application_Start() { MvcHandler.DisableMvcResponseHeader = true; }
您还可以在运行时Application_PreSendRequestHeaders通过Global.asax.cs. 如果您的标头值是动态的,这将很有用:
Application_PreSendRequestHeaders
protected void Application_PreSendRequestHeaders(object source, EventArgs e) { Response.Headers.Remove("foo"); Response.Headers.Add("bar", "quux"); }