登陆以后,将标记写入数据库或者cache
Session结束的时候清掉该用户登录信息

解决方案 »

  1.   

    怎么可以知道这个session结束了....能不能说清楚点啊
      

  2.   

    第一,当用户自动注销的时候,你就把session注销.
    第二,到达了你设定的时间,session会自动注销.
      

  3.   

    如果你是用 jsp 的话 可以用 Java Servlets 把改登录用户的id放到服务器端  不过也可以用5楼的说法 存到数据库中 
      

  4.   

    如果你是用 jsp 的话 可以用 Java Servlets 把改登录用户的id放到服务器端  不过也可以用5楼的说法 存到数据库中 
      

  5.   

    没学过!不过上面不是说了吗?到达你的设定时间可以自动把他注销掉!另外登陆的话应该可以记录登陆IP吧!如果同时有两个同名登陆IP不同的话可以将前一次的强行注销掉的吧?
      

  6.   

    做个在线统计不就解决了笨,多少时间刷新,没刷新就表示不在线,用数据库能更准确点,不要用Application
      

  7.   

    把SESSION记录在数据库里很容易解决类似问题 
      

  8.   

    用户登录时检查一下session
    如果sessio已存在,不许登录
      

  9.   

    呵呵,我们以前的项目也遇到过这种问题。上面几种弟兄们提出的方法也都考虑过。
    其实具体有如下几种思路。1.数据库实现
      用户登陆后,更改数据库中用户的标识即可。下次此用户登陆,根据标识判断即可。
      但弊病是性能消耗大。速度相比而言,慢。2.QQ方式
      即当前用户已经登陆,如此用户再次登陆,需敲入密码,且不用给出提示,直接T掉上次登陆用户即可。
      此方式有点不人性化,且如确实是多人使用同一帐号,易造成不安全因素。
      当然,可以根据截取IP判断,但我觉得那就丧失了需求所提出的意义了。3.application方式。
      这是现在我们所使用的,即直接在application中建立一用户登陆列表。即在线列表。新用户登陆时,比较此列表。如当前用户在线,不让其登陆之。
      且给出提示。
      此方式相比而言,消耗小,速度快。
      

  10.   

    session自动注销会引发事件吗?
    16F的application好像是asp里的吧
    我这样想的
    每访问一页,执行这样一个函数a
    a函数先更新当前登陆用户的标记时间,再检测上次执行函数b的时间lasttime,大于10分钟,执行b,否则,退出a
    函数b,删除10分钟未活动的人,更新lasttime
    你这问题的核心就是在线列表
      

  11.   

    在数据库里加标志符嘛.相同帐号在不同电脑上二次登陆就把前面那个T掉,跟QQ登陆方式差不多.新建一个标志符.而前面那却因为没对应上则会提示没登陆(此问题可以参考DISCUZ的后台登陆机制,不同地方登陆就会导致异常了).