asp中 
在global.asa的  
application_onstart里面  
      set   tmp_dic=server.createobject("scripting.dictionary")  
      redim   tmp_a(0)  
      set   tmp_a(0)=tmp_dic  
      Application("bbs_online")=tmp_a  
   
  session_onend里面  
      '用户注销或者Session失效时,从在线人中删除名字  
      'Application("bbs_online")指向数组tmp_a,tmp_a(0)指向字典tmp_dic  
      dim   tmp_a,tmp_dic,dic_key,dic_item  
      tmp_a=Application("bbs_online")  
      set   tmp_dic=tmp_a(0)  
      dic_key=tmp_dic.keys  
      dic_item=tmp_dic.items  
      for   n=0   to   tmp_dic.count-1  
          if   dic_item(n)=Session.SessionID   then  
              tmp_dic.remove   dic_key(n)  
              exit   for  
          end   if  
      next  
      set   tmp_a(0)=tmp_dic  
      Application("bbs_online")=tmp_a  
   
  以下是一个包含文件banner.asp里的部分代码  
  每个页面都包含该文件  
          <%dim   tmp_a,tmp_dic,tmp_key  
          tmp_a=Application("bbs_online")  
          set   tmp_dic=tmp_a(0)  
          '当前在线人中没有这个名字且名字不为空  
  if   NOT   tmp_dic.exists(cstr(request.cookies("user_name")))   and   request.cookies("user_name")<>""   then  
      tmp_dic.add   cstr(request.cookies("user_name")),Session.SessionID  
  end   if  
  set   tmp_a(0)=tmp_dic  
  Application("bbs_online")=tmp_a  
           
          tmp_key=tmp_dic.keys%>  
          <%if   tmp_dic.count=0   then%>  
          当前只有游客在线  
          <%else%>  
          <font   color=red><b><%=tmp_dic.count%></b></font>会员在线   </td>  
          <td   height="21"   bgcolor="#FFFFFF"   width="145"   style="padding-top:   2;   padding-bottom:   2">  
          <select   size="1"   name="bbs_online"   style="font-size:   9pt;   color:   #006DB7">  
          <%for   n=0   to   tmp_dic.count-1%>  
          <option   value="<%=tmp_key(n)%>"><%=tmp_key(n)%></option>  
          <%next%>  
          </select>  
          <%end   if%>
asp.net中:
global.asax.cs

using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;

namespace alumniV2
{
 /// <summary>
 /// Global 的摘要说明。
 /// </summary>
 public class Global : System.Web.HttpApplication
 {
  public Global()
  {
   InitializeComponent();
  } 
  
  protected void Application_Start(Object sender, EventArgs e)
  {
   Application.Lock ();
   
   Application["usernum"]=0;
   Application["onlineuser"]="";   
   Application["guestnum"]=0;

   Application.UnLock ();
  }
 
  protected void Session_Start(Object sender, EventArgs e)
  {
   Application.Lock ();

   Application["guestnum"]=(Int32)Application["guestnum"]+1;

   Application.UnLock ();
  }

  protected void Application_BeginRequest(Object sender, EventArgs e)
  {

  }

  protected void Application_EndRequest(Object sender, EventArgs e)
  {

  }

  protected void Application_AuthenticateRequest(Object sender, EventArgs e)
  {

  }

  protected void Application_Error(Object sender, EventArgs e)
  {

  }

  protected void Session_End(Object sender, EventArgs e)
  {
   Application.Lock ();
   string name;
   if (Request.Cookies ["personal"]!=null )
   {
    name=Request.Cookies ["personal"]["username"] ;
    if (name!="")
    {
      Application["usernum"]=(Int32)Application["usernum"]-1;

      Application["onlineuser"]=(Application["onlineuser"]+"").Replace (name+"$","");

    }
    else
     Application["guestnum"]=(Int32)Application["guestnum"]-1;
   }
   else
    Application["guestnum"]=(Int32)Application["guestnum"]-1;
   Application.UnLock ();
  }

  protected void Application_End(Object sender, EventArgs e)
  {
   Application.Lock ();
   
   Application["usernum"]=0;
   Application["onlineuser"]="";   
   Application["guestnum"]=0;

   Application.UnLock ();
  }
   
  #region Web Form Designer generated code
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
  }
  #endregion
 }
}

index.aspx.cs

  private void ShowOnlineUser()
  {
   onlinenum.Text ="  当前共有 <font color=red>"+ Application["usernum"] +"</font>  个成员 <font color=red>"+ Application["guestnum"] +"</font>  个客人在线   <img src='images/user.gif'> <font color=red>成员</font>   <img src='images/guest.gif'> 客人 ";

   string oluserstr;
   string []oluser;
   int n;
   oluserstr="";
   if (Application["onlineuser"]!=null)
   {
    //oluser1=;
    oluser=(Application["onlineuser"]+"").Split('$');
    for (n=0;oluser[n]!="" && oluser[n]!=null;n++)
     oluserstr=oluserstr+"  <img src='images/user.gif'> <a href='myinfo.aspx?username="+Server.UrlEncode(oluser[n])+"'><font color=red>"+oluser[n]+"</font></a> ";
   }
    
   if (Application["guestnum"]!=null)
   {
    for (n=0;n<(Int32)Application["guestnum"];n++)
     oluserstr=oluserstr+"  <img src='images/guest.gif'> 客人 ";
   }
   onlineuser.Text =oluserstr;
  }

posted on 2006-12-27 14:56  球艺  阅读(1102)  评论(2编辑  收藏  举报