问题就是我怎么记录用户在线和退出呢,实现用asp.net(c#),如果是统计用户数量比较好办
  <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>这样就行了,如果是用户登录时就放到一个临时表中可以,退出就直接从表中删除就可以了,但是用户登录了,没有按退出怎么办,那不是一生都在线啊, 不合理,看有没有办法解决这个问题?

解决方案 »

  1.   

    一般在Web上不好控制用户是否在线,如果用户不是正常的退出的话(点击关闭),就无法
    捕获其在不在线。采用Application不是最好的记录用户在线数量的方法。
    一般可以将用户的登陆时间保存到数据库中,按照时间段来确定是否在线(二楼所说)
    如果登陆时间过长,则判断为离开同时增加一个判断是否在线的标志位,要取在线数目的时候,就Sum这样的记录好了~~
      

  2.   

    你们讲的意思,我差不多明白,如果真是要按楼二的兄弟说,不是用户每点击任何一个网页都要更新他的时间,不是吗?,好像有点勉强哦,就算是这样,如果用点击的是htm静态页怎么办,没法记录啊,除非你整个网站都做成动态的,全是aspx后面结尾的(如果用asp.net来做的话)