ASP.Net中自定义Http处理及应用之HttpHandler篇
日期:2007年4月28日 作者:-
在开发基于Microsoft IIS的应用时,开发者除了可以编写ASP程序外,还可以使用Visual C++等开发工具,开发ISAPI应用,以获取更为强大的功能。可以编写两种ISAPI扩展:一种是ISAPI Server Extention,另一种是ISAPI Filter,但是,ISAPI扩展应用的编写通常对开发者有比较高的要求,开发和部署的难度比较大。 在开发ASP.Net应用时,我们仍然可以编写ISAPI应用,以扩充IIS的功能,但是,ASP.Net为我们提供了另外一种选择——使用HTTP Handler 和HTTP Module。这是通过使用IHttpHandler 和 IHttpModule接口来实现的。HTTP Handler提供了类似于ISAPI Server Extention的功能,而HttpModule实现了类似于ISAPI Filter的功能,并且,比ISAPI,在开发和部署上都要简单的多。 应用HttpHandler和HttpModule,使应用程序可以与IIS Web服务器的低级别请求和响应服务交互。本文首先介绍HttpHandler和HttpModule的概念和基本使用方法,并介绍了一个应用HttpModule实现权限系统的案例。
HTTP 处理管道的基本模型
要对HttpModule和IHttpHandler进行研究,必须先对ASP.Net的处理管道有一个了解。 在ASP.Net应用程序中,系统使用一组相关的类,通过一定的顺序来处理客户端的请求(Request),ASP.NET应用程序的处理模式可称之为HTTP处理管道。HttpModule和IhttpHandler就是这个处理管道上的两个处理环节。 HTTP处理管道中的类在System.Web名称空间中定义,主要有以下类型: · HttpWorkerRequest 抽象类定义了ASP.Net页面处理请求的基本方法; · HttpRuntime 提供了处理应用的一组服务; · HttpContext 保存了处理一次请求的所有相关上下文信息; · HttpApplicationFactory 提供相关目录的应用程序; · HttpApplication 定义了所有ASP.Net应用程序的通用的方法、属性和事件。这个类也是在用户在global.asax文件中定义的应用的基类; · Modules 处理请求前和响应后的事件; · HandlerFactories 提供应用程序中的Handlers; · Handlers 处理请求和响应。 HTTP处理管道的模型如下:
图1:HTTP 处理管道
在Windows平台上,HTTP Pipline需要IIS的支持。为了运行ASP.NET应用,IIS需要以下两个文件:ASPNET_ISAPI.DLL和ASPNET_WP.EXE · ASPNET_ISAPI.DLL是一个ISAPI Extention他将发向IIS的请转交ASPNET_WP.EXE处理 · ASPNET_WP.EXE使用HttpRuntime对请求进行具体处理 处理的过程可以用图表示如下:
图2:IIS上的HTTP处理管道
HttpHandler的实现
HttpHandler实现了类似于ISAPI Extention的功能,他处理请求(Request)的信息和发送响应(Response)。HttpHandler功能的实现通过实现IHttpHandler接口来达到。实际上,我们在编写ASP.Net页面时,ASP.Net页面所继承的基类——System.Web.UI.Page——也实现了HttpHandler接口,也是一个HttpHandler,看一下它的定义就知道了(C#): - [1] [2] [3] [4] 下一页
-
- ASP.Net中自定义Http处理及应用之HttpHandler篇 相关文章:
- ·处理电脑断网/掉线的常规技巧
- ·ASP留言本教程
- ·最新免费HTTP代理服务器
- ·如何卸载netware客户服务
- ·照片处理:Photoshop人物照片换头术
- ·BAT批处理文件语法
- ·PS处理老照片
- ·ASP.NET2.0下含有DropDownList的GridView编辑、删除的完整例子!
- ASP.Net中自定义Http处理及应用之HttpHandler篇 相关软件
- ·RecoverNT Network V3.5 汉化版
- ·Microsoft .NET Framework V3.0
- ·NetLimiter V2.0.9.1 汉化版
- ·星空极速 ChinaNetClient V3.2
- ·Internet Explorer 7.0.5730.11 for XP SP2
- ·Internet Information Server(IIS) V6.0 For 2003
- ·Kaspersky(卡巴斯基) KIS 安全套装 V6.0.2.621 MP2 简体中文正式免激活版
- ·Internet Information Server(IIS) V5.1 For XP
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
下一篇:用c#写的asp+域名查询程序
