ASP.NET应用程序生命周期趣谈(三) HttpModule

在之前的文章中,我们提到过P_Module(HttpModule)这个能干的程序员哥们儿,它通过在项目经理 HttpApplication那里得到的授权,插手整个应用程序级别的事件处理。所有的HttpModule都要实现 IHttpModule接口,那么我们看IHttpModule的定义:

namespace System.Web
{
     public interface IHttpModule
     {
         void Dispose();
         void Init(HttpApplication context);
     }
}

可以看到,HttpModule 主要就做了两件事,一个就是大家都明白的释放资源Dispose(),另一个则是 初始化。用什么初始化呢?当然是HttpApplication。刚才已经说过,P_Module程序员是经过了项目经理 HttpApplication的授权了的,这里我们就可以看到,初始化方法参数就是 HttpApplication对象,那么 HttpModule又是怎么处理应用程序级别的事件的呢?且看:

我们可以看到,项目经理HttpApplication可是实实在在的放权啊,它非常的相信P_Module可以做好这 些事情,所以在初始化方法 Init(HttpApplication context)中,程序员P_Module可以注册很多事件,比 如说常用的BeginRequest, EndRequest, AuthenticateRequest, AuthorizeRequest等等,还有一些其它 的不常用的事件我们就不再赘述。总而言之,HttpModule强大到可以插手整个应用程序周期的所有事件- --因为得到了充分授权嘛。下面是注册BeginRequest事件示例代码:

public void Init(HttpApplication context)
  {
      context.EndRequest+= new EventHandler(context_EndRequest);
  }

  private void context_EndRequest(object sender, EventArgs e)
  {
     //do something when the request end
  }

时间: 2024-08-22 14:55:59

ASP.NET应用程序生命周期趣谈(三) HttpModule的相关文章

ASP.NET应用程序生命周期趣谈(一)

这几天一直在看ASP.NET应用程序生命周期,真是太难了,我理解起来费了劲了,但偏偏它又是那么重 要,所以我希望能给大家带来一篇容易理解又好用的文章来帮助学习ASP.NET应用程序生命周期.这篇就 是了. 当你访问博客园想看我的这篇文章的时候,这个请求就被博客园的WEB SERVER(IIS)接收到了.博客 园IIS看了一眼我的请求,"噢,是.aspx啊,给ASP.NET去处理吧,就把我这个请求给了ASP.NET,并且说 :"这个你来处理,你处理完了之后把HTML给我,我好给邱爽一个回

ASP.NET应用程序生命周期趣谈(二)

在上回书开始的时候我们提到博客园的IIS看了一眼我的请求后就直接交给ASP.NET去处理了,并且要 求ASP.NET处理完之后返回HTML以供展示. 那么我们不仅要问: 1,IIS肯定是没有眼睛的啦,那它是怎么"看"的呢? 2,在"看"到了.aspx的页面请求后又是如何把它交给ASP.NET的呢?如果不做任何处理那它的存在又 有什么意义呢? 3,ASP.NET收到这个处理请求后又是如何做的呢?它是怎么创建Context对象又是如何"雇佣"项目经

ASP.NET页生命周期和ASP.NET应用程序生命周期有什么不同?

问题描述 ASP.NET页生命周期包括在ASP.NET应用程序生命周期里吗?? 解决方案 解决方案二:http://www.knowsky.com/344806.html你去看看解决方案三:html本身就是所谓statelessprotocol.说到页生命周期时一般是指ViewState.解决方案四:简单讲:ViewState-PageLevelstateSession-SessionLevelstateApplication-ApplicationLevelstate解决方案五:namhyuk

ASP.NET应用程序生命周期问题.

问题描述 看了MSDN上的.ASP.NET应用程序生命周期.有下面几个阶段1.用户从Web服务器请求应用程序资源2.ASP.NET接收对应用程序的第一个请求.3.为每个请求创建ASP.NET核心对象.4.将HttpApplication对象分配给请求5.由HttpApplication管线处理请求.那HttpModule和HttpHandler属于上面的哪个阶段啊? 解决方案 解决方案二:请求-->IIS-->ASP.NETHTTP运行期-->认证-->授权--..........

ASP.NET 应用程序生命周期

应用程序生命周期概述 阶段 说明 用户从 Web 服务器请求应用程序资源. ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点.ASP.NET 是 Web 服务器下的 ISAPI 扩展.Web 服务器接收到请求时,会对所请求的文件的文件扩展名进行检查,确定应由哪个 ISAPI 扩展处理该请求,然后将该请求传递给合适的 ISAPI 扩展.ASP.NET 处理已映射到其上的文件扩展名,如 .aspx..ascx..ashx 和

ASP.NET 应用程序生命周期概述

来源:MSDN ASP.NET 应用程序生命周期概述     本主题概述应用程序生命周期,列出重要的生命周期事件,并描述如何编写适合应用程序生命周期的代码.在 ASP.NET 中,若要对 ASP.NET 应用程序进行初始化并使它处理请求,必须执行一些处理步骤.此外,ASP.NET 只是对浏览器发出的请求进行处理的 Web 服务器结构的一部分.了解应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果. 应用程序生命周期概述 下表描述了 ASP.NET 应用程序生命周期的各

ASP.NET AJAX客户端生命周期分析(理论篇)

一.引言 微软的ASP.NET AJAX框架,作为一个相对比较完善的AJAX框架,有许多方面值得我们作深入研究.本文中,我们将结合一个具体的例子试图探究ASP.NET AJAX框架的客户端生命周期过程. [注]阅读本文最好要结合"ASP.NET应用程序生命周期概述"和"ASP.NET页面生命周期概述"两篇文章共同学习. 二.ASP.NET AJAX客户端生命周期原理 因为ASP.NET AJAX框架在开发思路上极大地借鉴了ASP.NET 2.0的开发技术,而且将会被

IIS处理asp.net请求和asp.net的页面生命周期

当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和asp.net的页面生命周期.欢迎大家积极拍砖,共同学习,共同进步. 首先我们要弄清楚两个非常重要的概念: 1, worker process(w3wp.exe). worker process管理所有的来自客户端的请求并给出响应.它是IIS下asp.net应用程序的核心. 2, application pool. 它是worke

使用“管道”与“应用程序生命周期”重构:可插拔模块

  本篇博客依然用于总结工作中遇到的较有用的设计模式.     入正题.   历史代码       我目前开发的系统中,要实现以模块的方式进行动态扩展.这些模块是以独立程序集的方式嵌入到系统中.原系统中,使用了一个简单的接口 IModule 来实现模块的初始化: 1 2 3 4 public interface IModule {     void Initialize(); } 这样,在应用程序初始化时,会检测指定目录 Modules 下的所有程序集,并对其中所有实现 IModule 接口的类