转载地址: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相关推荐

  1. 用自定义IHttpModule实现URL重写

    在本人拙作<ASP.NET夜话>第十二章中探讨过ASP.NET底层运行机制的问题,在该书中本人也讲到过了解一些ASP.NET的低层机制对于我们灵活控制ASP.NET有很大帮助,在该书中本人 ...

  2. MVC TIP7:自定义IHttpModule、IRouteHandler实现路由调试

    在实际的项目中,会存在大量的自定义路由,URL很容易被错误的路由捕获,现在我们就实现一个这样的诊断工具,该工具通过实现一个自定义的IHttpModule来实现. 首先,我们创建CustomRouteH ...

  3. IIS 5.0 和 6.0 的 ASP.NET 应用程序生命周期

    本文内容 应用程序生命周期概述 生命周期事件和 Global.asax 文件 编译生命周期 HTTP 模块 本文概述 VS 2008 ASP.NET 应用程序的生命周期,列出了重要的生命周期事件,并描 ...

  4. .net学习之母版页执行顺序、jsonp跨域请求原理、IsPostBack原理、服务器端控件按钮Button点击时的过程、缓存、IHttpModule 过滤器...

    1.WebForm使用母版页后执行的顺序是先执行子页面中的Page_Load,再执行母版页中的Page_Load,请求是先生成母版页的控件树,然后将子页面生成的控件树填充到母版页中,最后输出 2.We ...

  5. ASP.Net中自定义Http处理及应用之HttpHandler篇

    摘自:http://hi.baidu.com/irinihp/blog/item/c96a011ea1f78ff31ad576f8.html 很多时候,我们新建一个xxx.aspx页和xxx.aspx ...

  6. IHttpModule和IHttpHandler 应用笔记

    ASP.NET 提供了 IHttpHandler 和 IHttpModule 接口,它可使您使用与在 IIS 中所用的 Internet 服务器 API (ISAPI) 编程接口同样强大的 API,而 ...

  7. 演练:创建和注册自定义 HTTP 模块

    本演练演示自定义 HTTP 模块的基本功能. 对于每个请求,都需要调用 HTTP 模块以响应 BeginRequest 和 EndRequest 事件. 因此,该模块在处理请求之前和之后运行. 如果 ...

  8. 自定义Unity对象生命周期管理集成ADO.NET Entity Framework

    在Unity中,从Unity 取得的实例为 Transient.如果你希望使用多线程方式,就需要在组成时使用lifecycle参数,这时候取出的组件就不再是同一个了.在Unity IOC中,它支持我们 ...

  9. 实现IHttpModule接口获取Session来实现页面访问日志功能。

    我们在开发企业Web应用程序时经常需要对用户的操作记录日志,以便在发生突发事件后有据可查,比如要对用户访问的每一个页面都做日志记录.通常的做法可能是编写一个记录日志的方法(如:AddAccessLog ...

  10. 个人IHttpHandler,IHttpModule认识

    IHttpHandler 自定义一般处理程序类及配置: 这里只是简单讲讲"可以这么做",对于原理性底层的东西,博客园有详细资料,这里略过.(IIs处理机制,文件处理映射等) 对于一 ...

最新文章

  1. uva 657 The die is cast
  2. PowerEdge M915 – 戴尔打出的又一记虚拟化重拳
  3. 以太坊(Ethereum ETH)的奖励机制
  4. 机器学习实战-贝叶斯算法-24
  5. GDI+绘制极坐标图(Polar Diagram)
  6. java 日期处理 口诀_java时间处理常用方法工具类
  7. Axure实现多用户注册验证
  8. mysql执行计划字段解释
  9. ElasticSearch(1)CentOS安装ElasticSearch测试CRUD
  10. python下载股票数据_如何下载股票历史数据?
  11. js之this,call,apply用法
  12. 一文讲解AGV机器人的12种导航导引方式,收藏备用
  13. echarts南丁格尔玫瑰图
  14. el-dialog中el-select的层级问题
  15. 学以致用——Java源码——抛双骰儿游戏综合评估(游戏步数与胜率的关系,公平性,平均步数等)(Game of Craps Evaluation)
  16. 日本东京成田国际机场的第三候机楼
  17. 计算机 澳洲 博士后 要考雅思么,博士后移民澳大利亚(澳洲做科研博士后)
  18. 计算机网络的组成有哪些
  19. 液晶显示c语言程序设计,12864液晶显示屏串行驱动演示C语言程序设计
  20. Blender基础:从程序员的角度理解顶点组(Vertex Group)和权重(Weight)

热门文章

  1. java 异常捕捉 ( try catch finally ) 清晰解释
  2. 《深入理解Java虚拟机》读书总结
  3. CentOS 7.2下安装lamp环境
  4. 新来的老大说,“公司以后禁止使用Lombok”,我表示反对~
  5. REST和微服务——用异步交互分解单体系统
  6. 专科学历,能让你永久增加5倍工作机会的最强方法!超级好用
  7. 我必须得告诉大家的 MySQL 优化原理
  8. 运维工程师姓什么很重要!请别叫我“X工”
  9. AndroidDeveloper Weekly No.2
  10. IIS7里的appcmd命令