How to used HttpModule

本文介绍如何使用 HttpModules 扩展 ASP.NET 的处理流程,包括实现 IHttpModule 接口的方法,并提供了一个简单的实例,展示了如何在每个请求开始时输出问候消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Http Modules allow you to extend the existing ASP.NET pipeline.  The most common use of HTTPModules is pre and/ore postprecessing of requests.  Internally ASP.NET utilizes custom modules (httpmodules) for: output caching, authentication and authorization etc.  Therefore, if you ever need to tap into the pipleline to alter the request in any way, look into HttpModules as they provide a relatively easy way for you to do just that (similiar to how ISAPI filters helped achieve pre/post processing capabilities). 

To develop an HttpModule you are required to do the following:

  • You class must implement the iHttpModule Interface
  • Both the Init(..) and Dispose() methods must be in your class definitions

Below is a simple example that outputs "HttpModule says Hello!" to each and every request.  You will notice that I wired an event in the Init(..) method that calls OnBeginRequest at the beginning of every request.

using System;
using System.Web;
namespace CSharpFriends.Samples
{
 public class CSharpFriendsHttpModule : IHttpModule 
 {
  public CSharpFriendsHttpModule()
  {
  }
  /// 
  /// Required by the interface IHttpModule
  /// 
  public void Dispose() 
  {	
  }
  /// 
  /// Required by the interface IHttpModule
  /// I also wire up the Begin Request event.
  /// 
  public void Init(System.Web.HttpApplication App) 
  {  
     App.BeginRequest += new System.EventHandler(OnBeginRequest);
     App.EndRequest+=new System.Eventhandler(OnEndRequest);
  }

   public void OnBeginRequest(object sender, EventArgs e)
   {
    //HttpRequest request = ((HttpApplication)sender).Request;
    HttpApplication app= ((HttpApplication)sender;
    app.Context.Response.Write("HttpModule says Hello!");
   }
   public void OnEndRequest(object sender,EventArgs e)
  {
    HttpApplication app=(HttpApplication)sender;
    app.Context.Response.Write("HttpModule says Baby!");
  }

}
}
In your web.config, add the following elements:
<httpModules>
	<add type="CSharpFriends.Samples.CSharpFriendsHttpModule,Test" name="CSharpFriendsHttpModule" />
</httpModules>
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值