统计在线的用户

首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:  
   
   
  <%@   Page   Language="c#"   debug="true"   %>  
  <html>  
  <head>  
  <SCRIPT   LANGUAGE="c#"   RUNAT="server">  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {    
  Visitors.Text   =   "本站当前有:   <b>"   +   Application["user_sessions"].ToString()   +   ""   +   "</b>   位访问者   !";  
  }  
  <title>在线用户</title>  
  </head>  
  <body>  
  <asp:label   id="visitors"   runat="server"   /><br>  
  </body>  
  </html>    
   
    可以看出,以上的程序特别简单,就是调用Application。当然,我们不必要专门设计一个页面来显示在线用户数量,在网站的任何页面,我们都可以直接调用Application("user_sessions").ToString()来显示当前用户数量。  
   
    二、global.asax文件实现  
   
    global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:  
   
   
  <script   language="c#"   runat="Server">  
  protected   void   Application_Start(Object   sender,   EventArgs   e)  
  {  
  Application["user_sessions"]   =   0;  
  }  
  protected   void   Session_Start(Object   sender,   EventArgs   e)  
  {  
  Application.Lock();  
  Application["user_sessions"]   =   (int)Application["user_sessions"]   +   1;  
  Application.Unlock();  
  }  
  protected   void   Session_End(Object   sender,   EventArgs   e)  
  {  
  Application.Lock();  
  Application["user_sessions"]   =   (int)Application["user_sessions"]   -   1;  
  Application.Unlock();  
  }  
  </script>    
   
    以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。  
原文地址:https://www.cnblogs.com/qfb620/p/1099236.html