`

HttpModule到底是干什么的呢?

阅读更多

HttpModule是向实现类提供模块初始化和处置事件。
  
  首先你要实现IHttpModule接口这个接口只有两个方法,一个是Init方法一个Dispose方法.一看方法的名字就知道了这两个方法一个是在加载前调用的,一个是Dispose时调用的(页面最后处理的一个事件).
  
  
  
  下面代码说明了如何在所有的页面加载之前和结束写入一段文字: 
   
  

using System; 
  using System.Data; 
  using System.Configuration; 
  using System.Web; 
  using System.Web.Security; 
  using System.Web.UI; 
  using System.Web.UI.WebControls; 
  using System.Web.UI.WebControls.WebParts; 
  using System.Web.UI.HtmlControls; 
   
  /// <summary> 
  /// HelloWorldModule 的摘要说明 
  /// </summary> 
  public class HelloWorldModule : IHttpModule 
  { 
  public HelloWorldModule() 
  { 
  // 
  // TODO: 在此处添加构造函数逻辑 
  // 
  } 
   string str = ""; 
   public String ModuleName 
   { 
   get { return "HelloWorldModule"; } 
   } 
   
   public void Init(HttpApplication application) 
   { 
   //注册页面请求开始和结束事件 
   application.BeginRequest += 
   (new EventHandler(this.Application_BeginRequest)); 
   application.EndRequest += 
   (new EventHandler(this.Application_EndRequest)); 
   } 
   
   private void Application_BeginRequest(Object source, EventArgs e) 
   { 
   //在页面开始请求前写入一段文字 
   HttpApplication application = (HttpApplication)source; 
   HttpContext context = application.Context; 
   context.Response.Write(@"<h1><font color=red> 
   HelloWorldModule: Beginning of Request 
   </font></h1><hr>"+ 
   application.Request.QueryString.Count.ToString()); 
   } 
   
   private void Application_EndRequest(Object source, EventArgs e) 
   { 
   //页面请求结束后写入一段文字 
   HttpApplication application = (HttpApplication)source; 
   HttpContext context = application.Context; 
   context.Response.Write(@"<hr><h1><font color=red>HelloWorldModule: End of Request</font></h1>"); 
   } 
   public void Dispose() 
   { 
   } 
  } 
   
  在web.config增加下面配置: 
   
  <httpModules> 
   
  <add name="HelloWorldModule" type="HelloWorldModule"/> 
   
  </httpModules> 

    
   
   
  上面是个小例子.那我们可以在这里做多少件事情呢?看下面的表就可以得出结论.
  
  事件
   说明
  
  BeginRequest
   指示请求处理开始。
  
  AuthenticateRequest
  
  PostAuthenticateRequest
   封装请求身份验证过程。
  
  AuthorizeRequest
  
  PostAuthorizeRequest
   封装请求授权过程。
  
  ResolveRequestCache
  
  PostResolveRequestCache
   封装检查是否能利用以前缓存的输出页面处理请求的过程。
  
  PostMapRequestHandler
   指示已发现用于处理请求的 HTTP 处理程序。
  
  AcquireRequestState
  
  PostAcquireRequestState
   封装对请求会话状态的检索。
  
  PostRequestHandlerExecute
   指示用于处理请求的 HTTP 处理程序已执行。
  
  ReleaseRequestState
  
  PostReleaseRequestState
   封装对请求会话状态的发布。
  
  UpdateRequestCache
  
  PostUpdateRequestCache
   封装检查是否应对请求的资源的输出进行缓存以备今后重复使用的过程。
  
  EndRequest
   指示请求处理结束。
  
  
  我们可以根据相应的事件来进行处理.

分享到:
评论

相关推荐

    HttpModule伪静态实例

    首先,我们来看看什么是URL伪静态。静态URL通常是指以`.html`或`.htm`结尾的URL,它们指向的是一个实实在在的HTML文件。而动态URL则包含像`?`、`&`这样的参数,它们通常指向的是数据库查询。静态URL更容易被搜索引擎...

    RegisterHttpModule 注册HttpModule

    `RegisterHttpModule`方法是用于动态注册HttpModule的一种技术,这使得我们能够在不修改Web.config配置文件的情况下,实现HttpModule的添加和管理。 HttpModule本身是一种特殊的类,它继承自`System.Web....

    HttpModule和httpHandler学习例子

    **HttpModule** HttpModule是ASP.NET中的一个可插拔组件,它在应用程序处理HTTP请求生命周期的早期阶段介入。HttpModule可以注册事件处理器,监听特定的HTTP事件,如BeginRequest、EndRequest等。通过这些事件,模块...

    c#httpModule中重写url

    c#httpModule中重写url

    HTTPmodule操作cookie的方法demo

    CookieEncryption_Solution HTTPmodule操作cookie的方法demo

    ASP.NET架构详解HttpHandler和HttpModule高清PDF文字版

    在这个主题中,我们将深入探讨ASP.NET架构中的两个关键组件:HttpHandler和HttpModule。 **HttpHandler**是ASP.NET处理HTTP请求的核心组件。每个HTTP请求都会被路由到一个特定的HttpHandler,它负责处理特定类型的...

    c#基于HttpModule的用户身份验证

    c#基于HttpModule的用户身份验证 c#基于HttpModule的用户身份验证 c#基于HttpModule的用户身份验证 c#基于HttpModule的用户身份验证c#

    利用httpmodule统计页面访问量

    知识点:利用HTTPModule统计页面访问量 在深入探讨如何利用HTTPModule来统计页面访问量之前,我们首先需要理解几个核心概念。HTTPModule是ASP.NET框架的一部分,它允许开发者在请求处理过程中插入自定义代码,从而...

    HttpModule

    HttpModule是ASP.NET框架中的一个核心组件,它在Web应用程序的生命周期中扮演着重要的角色。HttpModule主要用于处理HTTP请求和响应,提供了一种扩展IIS(Internet Information Services)功能的机制,使得开发者可以...

    采用HttpModule技术进行以Ajax 方式的客户端回调处理类库源代码

    在这个特定的源代码库中,我们看到的是一个利用HttpModule实现Ajax客户端回调处理的实例。让我们深入了解一下这个技术及其应用场景。 1. **HttpModule的基本概念** HttpModule是ASP.NET中的一类特殊组件,它们可以...

    HttpModule 请求处理生命周期图

    HttpModule请求处理生命周期图,很清晰明了,值得看看

    介绍Asp.net HttpModule

    HttpModule对于深入理解Asp.Net的工作原理至关重要,因为它们在处理页面请求时扮演着重要角色。 首先,我们来看一下HttpModule的基本概念。一个HttpModule是一个实现了IHttpModule接口的类,这个接口有两个主要方法...

    HttpModule检验Session值

    HttpModule可以用来执行各种任务,例如身份验证、日志记录、缓存管理等。在本场景中,我们将讨论如何利用HttpModule来检验Session值和Cookie值,以实现在项目中的身份验证功能。 首先,我们需要了解HttpModule的...

    HttpModule实例

    HttpModule提供了一种扩展Web应用程序功能的方法,它可以在请求生命周期的早期阶段进行干预,执行自定义逻辑,如身份验证、日志记录、缓存控制等。这个“HttpModule实例”可能是一个具体的示例项目,展示了如何创建...

    HttpModule介绍

    ### HttpModule介绍 #### HttpModule概述 在ASP.NET框架中,`HttpModule`扮演着一个重要的角色,尤其是在处理HTTP请求的整个生命周期过程中。简而言之,`HttpModule`是在HTTP请求处理管道中运行的一些组件,它们...

    net实现定时任务(Cache+HttpModule)

    ### .NET 实现定时任务(Cache + HttpModule) 在.NET框架中实现定时任务可以通过多种方式完成,例如使用`System.Timers.Timer`、Windows服务、后台线程等。本文介绍一种较为特殊的实现方式:利用`HttpModule`和`...

    Community Server专题三:HttpModule

    ### Community Server专题三:HttpModule #### IIS与动态页面处理机制 首先,为了更好地理解HttpModule的作用,我们需要从整体上了解IIS是如何处理请求的。IIS(Internet Information Services)是一个由微软提供...

    HttpModule重写机制

    **HttpModule重写机制详解** 在ASP.NET框架中,HttpModule是IIS(Internet Information Services)与应用程序之间的一个重要组件,它提供了自定义处理HTTP请求的能力。HttpModule重写机制则是利用HttpModule来实现...

    HttpModule实现同时一人在线.rar

    在标题"HttpModule实现同时一人在线.rar"中,我们讨论的核心是利用HttpModule来限制同一时间只有一个用户在线。这通常涉及到会话管理、用户身份验证以及并发控制等概念。 HttpModule是IIS(Internet Information ...

    HttpModule,HttpHandler详细解释

    HttpModule,HttpHandler详细解释

Global site tag (gtag.js) - Google Analytics