去除服务器的heder信息
https://www.cnblogs.com/felixnet/p/6344613.html
https://www.cnblogs.com/wintersun/archive/2011/08/07/2129942.html
直接在Global.asax.cs中操作无效,不知何原因,如下:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
//HttpApplication app = sender as HttpApplication;
//if (app != null && app.Context != null)
//{
// app.Context. Response.Headers.Remove("Server");
// app.Context.Response.Headers.Remove("X-Powered-By");
// // Response.Headers.Set("Server", "ooosss");
// // Response.AddHeader("Sample1", "Value1");
//}
}
经测试,按上面的链接,再写一个modle可以:
public class mysvr : IHttpModule
{
public void Dispose()
{
//no code nescessary
}
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += new EventHandler(context_PreSendRequestHeaders);
}
void context_PreSendRequestHeaders(object sender, EventArgs e)
{
try
{
HttpApplication app = sender as HttpApplication;
if (null != app && null != app.Request && !app.Request.IsLocal && null != app.Context && null != app.Context.Response)
{
var headers = app.Context.Response.Headers;
if (null != headers)
{
headers.Remove("Server");
headers.Remove("X-Powered-By"); //这一条无效,需要在web.config中配置去除X-Powered-By
}
}
}
catch (Exception ex)
{
// Log.HandleException(ex);
}
}
}
以下是web.config
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime enableVersionHeader="false" />
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<!--去除 X-Powered-By 头部信息 -->
<clear/>
</customHeaders>
</httpProtocol>
<security>
<!-- 去除 Server 头部信息-->
<requestFiltering removeServerHeader="true" />
</security>
<modules>
<add name="mysvr" type="WebApplication2.mysvr, WebApplication2"/> 这引用前面写的module
</modules>
</system.webServer>
</configuration>