IHttpModule 入门

今天去笔试,IHttpModule概念描述一下,悲剧了,以前搞asp.net就没有系统学过,坐项目也没有遇到过,所以就悲剧了,一阵乱写.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
namespace ClassLibrary2
{
    //IHttpModule:侦听application事件或用户自定义事件.所谓的监听事件就是指当你的控件发生事件后,就会调用我这个接口里面的方法
    //IHttpModule有两个方法,一个是Init(HttpApplication),还有一个是Dispose()
    //第一个方法当然是我监听到你的事件发生的时候就初始化一个内容,Dispose()方法就是释放一些内容,就这样想吧
    public class Class1:IHttpModule
    {
        public void Init(HttpApplication context)
        {
            //HttpApplication,既然是监听application事件的,当然有这个参数,这个容易理解。
            //BeginRequest和EndRequest是httpApplication的两个事件,利用委托进行将事件和方法联系起来
            //BeginRequest事件是指,当页面开始的时候,这个事件被激发
            //EndRequest事件是指,当页面结束的时候,这个事件被激发
            context.BeginRequest += new EventHandler(context_BeginRequest);
            context.EndRequest += new EventHandler(this.context_EndRequest); 
        }

        public void Dispose()
        {
            throw new NotImplementedException();
        }

        public void context_BeginRequest(object obj, System.EventArgs e)
        {
            HttpApplication app = (HttpApplication)obj;
            app.Response.Write("Hi,testing customer http module request");
        }
        public void context_EndRequest(object obj, System.EventArgs e)
        {
            HttpApplication app = (HttpApplication)obj;
            app.Response.Write("Hi,end request here");
        } 
    }
}

然后生成dll,新建个asp.net应用,引用此dll,在web.config中加入

<httpModules>   <add name="test" type="ClassLibrary2.Class1,CustomerHttpModules"/> </httpModules>

则当有页面请求时会查找到此dll,然后执行其中过程。

原文地址:https://www.cnblogs.com/2814/p/2314615.html