首页 新闻 搜索 专区 学院

如何实现单一用户登录,不是单点登录

0
悬赏园豆:80 [已解决问题] 解决于 2008-06-04 12:47
<P><STRONG><FONT size=2>只让一个用户登录大家都是怎么做的啊</FONT></STRONG></P> <P><STRONG><FONT size=2>搜了好多帖子,大家用的方法都是放在cacahe里,等用户退出的时候清空cache,但是当用户点击x关闭浏览器的时候怎么才能清空cache啊,好急啊.谢谢各位</FONT></STRONG></P>
WEBBER的主页 WEBBER | 初学一级 | 园豆:2
提问于:2008-06-03 15:00
< >
分享
最佳答案
0
基于http的在线用户统计,总是有误差的,一般的统计都是几分钟之内同时在线的用户。 你的这个需求,我觉得可以通过在服务器端记录用户的最后访问页面的时间,每一次对服务器端的请求都要更新其最后访问时间;然后,定时扫描存放用户的cache,如果用户超过指定时间没有活动,就可以认为该用户已经离线了。 当用户关闭浏览器不一定能证明用户就一定离线了,因为用户可能同时开着几个浏览器窗口,关闭一个,另外的窗口没有关闭,不能说用户离线。
玉开 | 大侠五级 |园豆:8822 | 2008-06-03 15:32
其他回答(5)
0
在服务器端设一个定时器,隔一段时间去检测一下Cache. 这个也不是一个准确的值. 这样的问题不好处理呀!
侯垒 | 园豆:3435 (老鸟四级) | 2008-06-03 15:34
0
页面上用js每隔一段时间通知服务器一下,告诉它用户没有关闭浏览器. 服务器端也每隔一定时间检查一下,超时未报告状态的用户可以认为已经离开了. 如果用户量太大的话,这样做会很耗资源.但是没办法,HTTP本来就是无连接的协议.
deerchao | 园豆:8167 (大侠五级) | 2008-06-03 15:44
0
关闭页面本来就是不意味着退出.上过论坛的都知道.用户可以保存1天,1年的选项.当关闭页面后.再进入此时显示为已登陆状态. 基本思路还是在服务器端弄个Cache或静态变量存放hashKey.用户进入页面的时候检查客户端的hashkey是否存在. (这个完全不耗性能)
Lowkey | 园豆:220 (菜鸟二级) | 2008-06-03 18:02
0
客户端是属于被动的, 只能在服务器设置过期时间!
Samgle | 园豆:130 (初学一级) | 2008-06-03 21:47
0
不是用那几个存数据的对象吗? 用最高的一个 Application 存 跟Sessin用法一样 只要在Application里判断是否存在相同的用户名就可以了 如果有 你可以将Application 清空,那另一个用此账号登录的用户就会自动注销了 你再NEW一个新的Application 就又可以登录了
yeyang | 园豆:418 (菜鸟二级) | 2008-06-04 09:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册