求:java web 实现禁止用户多点登录。

doingjava 2009-09-09 07:43:23
请教一下,如何用java web实现禁止用户多处登陆??即一个用户同时只能在一点登录
...全文
606 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
天火 2009-09-19
  • 打赏
  • 举报
回复
学习
doingjava 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cclovescw 的回复:]
我觉得应该像QQ一样,后登陆的人可以登录,但前面登录的就失效了。这样比较合理些。
像上面的人所说,后登陆的人判断,这个账号是否在线,再判断是否能登陆,这样设计虽然简单很多,但是绝对不合理。而且如果用session判断的话,那你断下电,再重启电脑后,还登不进去。
[/Quote]

很多都说放到session里,这个是非常忌讳的吧,这么多东西往session里塞。BS跟CS还是有区别的,CS能做到,BS想做到这么强大,不知道会有什么方法。

说的都有道理,但是如果用户是非法退出(直接关浏览器)session就不会立马失效,session或数据库里的标识又这么及时清除呢?

又问:如何知道用户是非常规退出的呢? 请赐教!
aa147967084 2009-09-10
  • 打赏
  • 举报
回复
登陆时判断session是否有此用户,有的话就是有人登录此用户帐号,那就调用session.removeAttribute("用户帐号"),然后再把用户再次放进session就好了。(关键是登录要把用户放到session。这样才能判断)
doingjava 2009-09-10
  • 打赏
  • 举报
回复
楼上说的就是我所提这个问题的初衷,就是在想,记录在表中,判断是很好解决,但是当用户由于异常,或其他原因直接关闭浏览器,将如何追踪呢,就算你是配置了session的实效时间,那么当用户异常关闭后,启不是无法登录?? 请赐教
蛤蟆 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 aa147967084 的回复:]
引用 9 楼 spyking945 的回复:
引用 1 楼 z196186806 的回复:
我觉得 可以在数据库记录一下登录的用户名(若用户退出则从数据库中删除登陆的用户名)
当另外一个人想登陆的时候
先检测登陆的用户名是否在数据库中
若有则禁止登陆
否者登陆

同意

如果别人盗用你的帐号一直挂着不退出这么办,哈?
[/Quote]
提供用户登录解锁方案。
aa147967084 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 spyking945 的回复:]
引用 1 楼 z196186806 的回复:
我觉得 可以在数据库记录一下登录的用户名(若用户退出则从数据库中删除登陆的用户名)
当另外一个人想登陆的时候
先检测登陆的用户名是否在数据库中
若有则禁止登陆
否者登陆

同意
[/Quote]
如果别人盗用你的帐号一直挂着不退出这么办,哈?
getdate 2009-09-10
  • 打赏
  • 举报
回复
个人觉得,建立一个Session监听器,判断Session中已存的用户是否与登录的冲突,而后在给出相关的提示。
Jarvis-Li 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 z196186806 的回复:]
我觉得 可以在数据库记录一下登录的用户名(若用户退出则从数据库中删除登陆的用户名)
当另外一个人想登陆的时候
先检测登陆的用户名是否在数据库中
若有则禁止登陆
否者登陆
[/Quote]
同意
少龙123 2009-09-10
  • 打赏
  • 举报
回复
数据库设个字段,有个登陆后绑定的概念
glglglglglgllll 2009-09-10
  • 打赏
  • 举报
回复
最简单是数据库加个字段来判断
csdn
zhoujingxian 2009-09-10
  • 打赏
  • 举报
回复
先判断一下是否登录了

1.session判断
2.数据库多加个标志位

可能还有其它办法
一片云 2009-09-10
  • 打赏
  • 举报
回复
都是高手,我就不抢分了,呵呵
bolink5 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 betterjava 的回复:]
就是在数据库中用户表中多加一个用户在线状态的字段,每次登录的时候查询条件加上这个条件判断用户是否已经登录,如果已经登录就不让登录了;
还有就是这样的话,如果出现意外关闭浏览器的时候,这就需要考虑到把登录状态改成离线的问题,这需要设置一下配置文件中session失效时间,使用监听器监听session失效时调用修改状态的方法就OK了!
[/Quote]

觉得此方法可行。浏览器关闭了,基本上session也消失了。
或者就是用session来控制
Busing 2009-09-10
  • 打赏
  • 举报
回复
把登陆 用户的信息都保存在 APPLICATION里面啊! 然后上来一个用户 就看看 APPLICATON里面有没有这个用户就行了啊
success_feel 2009-09-10
  • 打赏
  • 举报
回复
有待进一步研究
norain 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 getdate 的回复:]
个人觉得,建立一个Session监听器,判断Session中已存的用户是否与登录的冲突,而后在给出相关的提示。
[/Quote]

说得对
zhang_yu_QIN 2009-09-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 doingjava 的回复:]
楼上说的就是我所提这个问题的初衷,就是在想,记录在表中,判断是很好解决,但是当用户由于异常,或其他原因直接关闭浏览器,将如何追踪呢,就算你是配置了session的实效时间,那么当用户异常关闭后,启不是无法登录?? 请赐教
[/Quote]

用时间session判断.。.
佐佐吉牧 2009-09-10
  • 打赏
  • 举报
回复
en,,不错!
  • 打赏
  • 举报
回复
我觉得应该像QQ一样,后登陆的人可以登录,但前面登录的就失效了。这样比较合理些。
像上面的人所说,后登陆的人判断,这个账号是否在线,再判断是否能登陆,这样设计虽然简单很多,但是绝对不合理。而且如果用session判断的话,那你断下电,再重启电脑后,还登不进去。
youjianbo_han_87 2009-09-10
  • 打赏
  • 举报
回复
单点登录有框架实现的。Web SSO 可以做到。

http://blog.csdn.net/javachannel/archive/2006/05/24/752437.aspx
加载更多回复(3)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧