去除服务器的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>

posted @   81  阅读(117)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示