在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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"); } } }
<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调试工具捕获,我们可以很清楚的看到响应标头的变化 未修改的: 修改后的: 好 到此为止吧 希望本文能帮到你~~
|
请发表评论