asp.net在线用户统计

下载地址:  
   
  http://www.bincess.cn/onlineuserservice.txt  
   
  使用方法,请参考下面的代码:  
   
  using   System;  
  using   System.Collections.Generic;  
  using   System.Text;  
  using   System.Web;  
   
  namespace   Bincess.WebForum  
  {  
  public   class   MyHttpModule   :   System.Web.IHttpModule  
  {  
  #region   类   MyHttpModule   构造器  
  ///   <summary>  
  ///   类   MyHttpModule   默认构造器  
  ///   </summary>  
  public   MyHttpModule()  
  {  
  }  
  #endregion  
   
  #region   IHttpModule   成员  
  public   void   Init(HttpApplication   application)  
  {  
  application.PreRequestHandlerExecute   +=   new   EventHandler(Application_PostRequestHandlerExecute);  
  }  
   
  public   void   Dispose()  
  {  
  }  
  #endregion  
   
  ///   <summary>  
  ///   当用户请求页面,并且其   Session   已经被建立时  
  ///   </summary>  
  private   void   Application_PostRequestHandlerExecute(object   sender,   EventArgs   e)  
  {  
  OnlineUserService.OnlineUser   onlineUser   =   new   OnlineUserService.OnlineUser();  
   
  //   设置在线用户名称  
  onlineUser.NickName   =   HttpContext.Current.Session["NickName"]   as   string;  
  //   当前用户所请求的   URL   地址  
  onlineUser.RequestURL   =   HttpContext.Current.Request.RawUrl;  
  //   活动时间  
  onlineUser.ActiveTime   =   DateTime.Now;  
   
  //   保存在线用户信息  
  OnlineUserService.Instance.Persist(HttpContext.Current.Session.SessionID,   onlineUser);  
  }  
  }  
  }  
   
  在服务器每次处理请求时,将   Session   信息、请求地址、当前时间包装成一个   OnlineUser   类对象,之后传入到   Persist   方法。  
   
  OnlineUserService   仅有一个   Persist   方法被公开,这保证了代码外露接口的单一性,易于维护。  
   
  对于多线程环境是安全的,在代码中使用了加锁,在不同的场合分别对   数据表   和   数据行   进行加锁,保证数据同步……  
   
  其他说明,代码中已经写的比较详细
posted @ 2009-01-05 14:54  瞭望者  阅读(199)  评论(0)    收藏  举报