asp.net 过滤器

asp.net 制作过滤器原理:重写ASP.net管道事件

1.通过HttpApplicationFactory创建一个HttpApplication对象,负责处理整个请求。

2.调用ProcessRequest(HttpContext context)执行19个委托对象(请求管道)

过滤器分为两种:

1.调用外部程序集(本次自己做一个程序集)

1.1.过滤器程序集代码要实现System.Web.IHttpModule接口

    public class MyModule:System.Web.IHttpModule
    {
        public void Init(System.Web.HttpApplication app)
        {
            app.BeginRequest += app_BeginRequest;
        }

        void app_BeginRequest(object sender, EventArgs e)
        {
            System.Web.HttpApplication app = sender as System.Web.HttpApplication;
            app.Context.Response.Write("哇哈哈哈哈~~~~~~~~~~~!");
        }

        public void Dispose()
        {

        }
    }

1.2.把过滤器程序集放到开发网站的目录中,并添加到【引用】中。

1.3.配置web.config

<configuration>
    <system.web>
      <compilation debug="true" targetFramework="4.0" />
    </system.web>
  <!--IIS应用池 中 集成模式-->
  <system.webServer>
    <modules>
     <!--<add name="aa" type="程序集类的全名称,程序集名"/>-->
      <add name="aa" type="P02ThirdModule.MyModule,P02ThirdModule"/>
    </modules>
  </system.webServer>
</configuration>

2.系统内容过滤(通过global 利用事件自动注册机制)

       //--- 利用 事件自动注册机制 来 为 当前网站的 HttpApplicaiton里的 事件 注册方法 ----------------

        //管道事件方法 的 命名规则 :一定 以 Application_事件名
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
            System.Web.HttpApplication app = sender as System.Web.HttpApplication;
            //app.Context.Response.Write("本网站的 Global 中 自动添加的方法 ~~~~~~~~~~~!");
            FakeStaticProcess(app);
        }

  

 

posted @ 2017-06-15 17:03  一杯水M  阅读(674)  评论(0编辑  收藏  举报