我的ASP.NET 4.5应用程序正在部署到共享主机,因此我无法访问IIS设置.要删除X-Powered-By标头,我在web.config中指定:
<system.webServer> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer>
要删除Server标头,我在Global.asax中指定:
protected void Application_PreSendRequestHeaders(object sender,EventArgs e) { HttpContext.Current.Response.Headers.Remove("Server"); }
但是,响应仍包含两个标头:
Cache-Control:private content-encoding:deflate Content-Length:672 Content-Type:text/html; charset=utf-8 Date:Sun,06 Jan 2013 00:41:20 GMT Server:Microsoft-IIS/7.5 X-Powered-By:ARR/2.5 X-Powered-By:ASP.NET
我该如何删除它们?
解决方法
我不知道为什么你的X-技术 – 通过不被删除,但在今年早些时候一个Windows更新修补程序作出如此的Application_PreSendRequestHeaders修复不再删除服务器:头我们.
我们必须使用IIS URL Rewrite Module 2在我们的system.webServer块(在Web.config中)添加一个部分:
<rewrite> <outboundRules> <rule name="Remove RESPONSE_Server"> <match serverVariable="RESPONSE_Server" pattern=".+"/> <action type="Rewrite" value=""/> </rule> </outboundRules> </rewrite>