• ASP.Net自定义重写Http Server标头


    Net中我们为了安全或其他原因起见 可能需要修改我们的标头报文等

    以下方法我们通过使用HTTP Module来使用编程的方式来去除或修改它

    首先我们自定义一个类CustomServerHeaderModule继承自IHttpModule 并为PreSendRequestHeaders事件创建事件处理程序

    代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    
    namespace Cloud.ApiWeb.Models
    {
        public class CustomServerHeaderModule : IHttpModule
        {
            public void Init(HttpApplication context)
            {
                context.PreSendRequestHeaders += OnPreSendRequestHeaders;
            }
            public void Dispose()
            {
            }
            void OnPreSendRequestHeaders(object sender, EventArgs e)
            {
                //移除Server标头
                //HttpContext.Current.Response.Headers.Remove("Server");
                //重新设置Server标头
                HttpContext.Current.Response.Headers.Set("Server", "Windows Server 2012");
            }
        }
    }


    接下来在web.config文件中配置

      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true">
          <add name="FirstModule" type="Cloud.ApiWeb.Models.CustomServerHeaderModule,Cloud.ApiWeb" />
        </modules>
      </system.webServer>

    Type有两部分组成第一部是命名空间及类名,也就是类型名;后面是程序集名。

    如果该类建在App_Code下 则不需要指定程序集 如下

    <add name="FirstModule" type="CustomServerHeaderModule" />

    注:由于是托管模块 你需要将你的项目部署在IIS中 方有效果 VS中无效


    下来我们可以预览下:

    通过IE调试工具捕获,我们可以很清楚的看到响应标头的变化

    未修改的:

    修改后的:

    好 到此为止吧 希望本文能帮到你~~

  • 相关阅读:
    hdu 1392 凸包周长
    hdu 1847
    时间管理101招
    祝大家端午节快乐
    激励员工的二十种非经济手段
    Web2.0个人桌面
    回顾Windows系列的OEM版本历史
    什么是电子商务
    解析3G软件人才成功之道
    成功者应具备的八个心态
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3265162.html
Copyright © 2020-2023  润新知