HttpModule学习笔记

时间:2010-02-21 09:37:34  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:      首先你要实现IHttpModule接口这个接口只有两个方法,一个是Init方法一个Dispose方法.一看方法的名字就知道了这两个方法一个是在加载前调用的,一个是Dispose时调用的(页面最后处理的一个事件).            下面代码说明了如何在所有的页面加载之前和结束写入一段文字: &nbs...
  正文:在微软的网站上找到了篇关于HttpModule的文章发现这个技术非常的好,他能为我们的安全带来好处.
  
  那么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 《HttpModule学习笔记》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12862.html


关键字:

关于《HttpModule学习笔记》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td