首先应该知道的是ASP.NET 请求处理过程是基于管道模型的,这个管道模型是由多个HttpModule和HttpHandler组成,ASP.NET 把http请求依次传递给管道中各个HttpModule,最终被HttpHandler处理,处理完成后,再次通过管道中的HTTP模块,把结果返回给客户端。咱们能够在每一个HttpModule中均可以干预请求的处理过程。服务器
httpmodule介绍cookie
httpmodule主要做用是向httpApplication对象中注册自定义事件,能够是受权验证等等ui
1.全部httpmodule都是实现了System.Web.IhttpModule接口对象
2.重写方法主要有两个:接口
(1)Init 方法:系统初始化的时候自动调用,这个方法容许HTTP模块向HttpApplication 对象中的事件注册本身的事件处理程序。
(2)Dispose方法: 这个方法给予HTTP模块在对象被垃圾收集以前执行清理的机会。此方法通常无需编写代码。事件
3.容许注册的事件有如下这些:资源
4.自定义的httpmodule要使用必须在Web.Conofig中注册,注册代码以下it
<httpModules>
<add name="TestModule" type="命名空间.类名"></add>
</httpModules> io
httphandler介绍编译
httphandler主要做用是HTTP请求的处理中心,真正地对客户端请求的服务器页面作出编译和执行,并将处理事后的信息附加在HTTP请求信息流中再次返回到HttpModule中
1.全部httphandler都是实现了IHttpHandler接口声明
2.HttpHandler与HttpModule不一样,一旦定义了本身的HttpHandler类,那么它对系统的HttpHandler的关系将是“覆盖”关系
3.必须在Web.Config配置文件中注册,注册代码以下
<httpHandlers>
<add verb="*" path="*" type="命名空间.类名"></add>
</httpHandlers>
4.在ProcessRequest方法中实现本身的业务逻辑