有一个HttpModule可以更改响应标头中的服务器字段。但它在ASP.NET / IIS7经典模式下不起作用。在响应标题中删除或更改服务器字段的解决方案是什么?
public class CloakHttpHeaderModule : IHttpModule
{
public void Init(HttpApplication app)
{
app.PreSendRequestHeaders += new EventHandler(context_PreSendRequestHeaders);
}
public void Dispose()
{
}
private void context_PreSendRequestHeaders(object sender, EventArgs e)
{
var context = ((HttpApplication)sender).Context;
context.Response.Headers.Set("Server", "Apache 2.0");
//HttpContext.Current.Response.Headers.Set("Server", "WSGIServer/0.1 Python/2.6.1");
}
}
答案 0 :(得分:6)
除非您至少运行IIS7,集成管道模式和.NET 3.0,否则无法执行此操作。文档说明了这一点:
只有集成了IIS 7.0才支持Headers属性 管道模式和至少.NET Framework 3.0。当你尝试 访问Headers属性,这两个条件之一不是 遇到了,抛出了PlatformNotSupportedException。