如何自定义IHttpModule
转载地址:http://dev.mjxy.cn/a-How-to-customize-the-IHttpModule.aspx
使用自定义的 IHttpModule 方法可以实现自己想要的url重写功能。
1. 自定义类 HttpModule 继承 IHttpModule
实现接口的Init方法,在方法中处理BeginRequest事件。
public class HttpModule : IHttpModule
{
#region IHttpModule 成é员±
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
void context_BeginRequest(object sender, EventArgs e)
{
string url = HttpContext.Current.Request.Path.ToLower();
//处理数字url
string reg = string.Format(@".*/{0}(?<id>[0-9]*)\.aspx$", KCore.Common.Global.Pre);
//正则匹配
Match match = Regex.Match(url, reg, RegexOptions.IgnoreCase);
if (!VerifyUrl(url) && match.Success && match.Groups.Count > 0)
{
string path = "index.aspx?id=" + match.Groups["id"].Value;
Debug.WriteLine(path);
HttpContext.Current.RewritePath(path);
return;
}
}
#endregion
}
2. 修改配置文件
type=Namespace.Class,AssemblyFile
<add name="HttpModule" type="Digitwest_HttpModule.HttpModule,Digitwest_HttpModule"/>
转载于:https://www.cnblogs.com/xingquan/archive/2011/07/14/2105940.html
如何自定义IHttpModule相关推荐
- 用自定义IHttpModule实现URL重写
在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...
- MVC TIP7:自定义IHttpModule、IRouteHandler实现路由调试
在实际的项目中,会存在大量的自定义路由,URL很容易被错误的路由捕获,现在我们就实现一个这样的诊断工具,该工具通过实现一个自定义的IHttpModule来实现. 首先,我们创建CustomRouteH ...
- IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期
本文内容 应用程序生命周期概述 生命周期事件和 Global.asax 文件 编译生命周期 HTTP 模块 本文概述 VS 2008 ASP.NET 应用程序的生命周期,列出了重要的生命周期事件,并描 ...
- .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器...
1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...
- ASP.Net中自定义Http处理及应用之HttpHandler篇
摘自:http://hi.baidu.com/irinihp/blog/item/c96a011ea1f78ff31ad576f8.html 很多时候,我们新建一个xxx.aspx页和xxx.aspx ...
- IHttpModule和IHttpHandler 应用笔记
ASP.NET 提供了 IHttpHandler 和 IHttpModule 接口,它可使您使用与在 IIS 中所用的 Internet 服务器 API (ISAPI) 编程接口同样强大的 API,而 ...
- 演练:创建和注册自定义 HTTP 模块
本演练演示自定义 HTTP 模块的基本功能. 对于每个请求,都需要调用 HTTP 模块以响应 BeginRequest 和 EndRequest 事件. 因此,该模块在处理请求之前和之后运行. 如果 ...
- 自定义Unity对象生命周期管理集成ADO.NET Entity Framework
在Unity中,从Unity 取得的实例为 Transient.如果你希望使用多线程方式,就需要在组成时使用lifecycle参数,这时候取出的组件就不再是同一个了.在Unity IOC中,它支持我们 ...
- 实现IHttpModule接口获取Session来实现页面访问日志功能。
我们在开发企业Web应用程序时经常需要对用户的操作记录日志,以便在发生突发事件后有据可查,比如要对用户访问的每一个页面都做日志记录.通常的做法可能是编写一个记录日志的方法(如:AddAccessLog ...
- 个人IHttpHandler,IHttpModule认识
IHttpHandler 自定义一般处理程序类及配置: 这里只是简单讲讲"可以这么做",对于原理性底层的东西,博客园有详细资料,这里略过.(IIs处理机制,文件处理映射等) 对于一 ...
最新文章
- uva 657 The die is cast
- PowerEdge M915 – 戴尔打出的又一记虚拟化重拳
- 以太坊(Ethereum ETH)的奖励机制
- 机器学习实战-贝叶斯算法-24
- GDI+绘制极坐标图(Polar Diagram)
- java 日期处理 口诀_java时间处理常用方法工具类
- Axure实现多用户注册验证
- mysql执行计划字段解释
- ElasticSearch(1)CentOS安装ElasticSearch测试CRUD
- python下载股票数据_如何下载股票历史数据?
- js之this,call,apply用法
- 一文讲解AGV机器人的12种导航导引方式,收藏备用
- echarts南丁格尔玫瑰图
- el-dialog中el-select的层级问题
- 学以致用——Java源码——抛双骰儿游戏综合评估(游戏步数与胜率的关系,公平性,平均步数等)(Game of Craps Evaluation)
- 日本东京成田国际机场的第三候机楼
- 计算机 澳洲 博士后 要考雅思么,博士后移民澳大利亚(澳洲做科研博士后)
- 计算机网络的组成有哪些
- 液晶显示c语言程序设计,12864液晶显示屏串行驱动演示C语言程序设计
- Blender基础:从程序员的角度理解顶点组(Vertex Group)和权重(Weight)
热门文章
- java 异常捕捉 ( try catch finally ) 清晰解释
- 《深入理解Java虚拟机》读书总结
- CentOS 7.2下安装lamp环境
- 新来的老大说,“公司以后禁止使用Lombok”,我表示反对~
- REST和微服务——用异步交互分解单体系统
- 专科学历,能让你永久增加5倍工作机会的最强方法!超级好用
- 我必须得告诉大家的 MySQL 优化原理
- 运维工程师姓什么很重要!请别叫我“X工”
- AndroidDeveloper Weekly No.2
- IIS7里的appcmd命令