我的 ASP.NET 4.5 应用程序正在部署到共享主机,因此我无权访问 IIS 设置。删除 X-Powered-By
header ,我在 web.config
中指定:
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
并删除
Server
header ,我在 Global.asax
中指定:protected void Application_PreSendRequestHeaders(object sender, EventArgs e) {
HttpContext.Current.Response.Headers.Remove("Server");
}
但是,响应仍然包含两个 header :
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-Powered-By
没有被删除,但今年早些时候的一个 Windows 更新补丁使得 Application_PreSendRequestHeaders
修复不再删除 Server:
我们的标题。
我们必须在 system.webServer
中添加一个部分使用 IIS URL Rewrite Module 2 阻止(在 Web.config 中) :
<rewrite>
<outboundRules>
<rule name="Remove RESPONSE_Server">
<match serverVariable="RESPONSE_Server" pattern=".+"/>
<action type="Rewrite" value=""/>
</rule>
</outboundRules>
</rewrite>
关于asp.net - 为什么不删除 Server 和 X-Powered-By header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178168/