如何控制同一帐户在同一时间只能登陆一个地方

chinaboy2005 2009-05-08 10:34:47
如题!
请各位给个实例,谢谢!~
...全文
191 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
xnjnmn 2009-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinxfei 的回复:]
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。
[/Quote]
ding
考虑单点登陆
考虑异常退出
youyou0204 2009-05-11
  • 打赏
  • 举报
回复
关注
careers1111 2009-05-11
  • 打赏
  • 举报
回复
必须要考虑异常推出
sahalapingo 2009-05-11
  • 打赏
  • 举报
回复
我想Web的话是要客户端主动去连接服务器吧,这样非正常的情况好像很难控制,比如电脑自动关机,等。一般的话在数据库中设置一个变量,登录后设置为1,退出时设置为0,应该就可以了吧。期待更好的解决方法。
meander 2009-05-11
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pathuang68 的回复:]
引用 1 楼 jinxfei 的回复:
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。

光IP还是不行的吧。比如假定某A机器和某B机器在一个公司内,该公司由一个ADSL猫 + 路由器上网,因此该公司只有一个Internet上的IP地址,那么A和B对于公司外部的服务器来说,他们的IP地址是一样的。所以说光IP是不能…
[/Quote]

赞同
  • 打赏
  • 举报
回复
程序里记录登陆信息的Session呢
careers1111 2009-05-10
  • 打赏
  • 举报
回复
就是活到seesion id 又能怎么样,难道还能根据某个session id 来是某个session失效吗
不行的


关于 如何控制同一帐户在同一时间只能登陆一个地方
小弟最近也在考虑,没有什么好的办法。

大家都说做标记 记录ip 这可以
但是怎么在离开时退出呢? 服务器要检测你是否在线 困难!!!

假如某个用户在线,突然停电了,那怎么办??? 所以归根结底还是要服务器 隔一段时间 检测 用户是否在线


有人说 关闭页面触发事件, 与到停电就不行了

larry_seven 2009-05-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 pathuang68 的回复:]
引用 1 楼 jinxfei 的回复:
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。

光IP还是不行的吧。比如假定某A机器和某B机器在一个公司内,该公司由一个ADSL猫 + 路由器上网,因此该公司只有一个Internet上的IP地址,那么A和B对于公司外部的服务器来说,他们的IP地址是一样的。所以说光IP是不能…
[/Quote]


怎么样去获取第一个sessionID呢?
zyf110101 2009-05-09
  • 打赏
  • 举报
回复
非正常退出 比如说 强制关闭机器 怎么处理啊
lgq_0714 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinxfei 的回复:]
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。
[/Quote]
学习!!!
patrick002 2009-05-09
  • 打赏
  • 举报
回复
在登录时进行标记,并在退出时和session失效时消除标记
疯狂的驴子 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 emon123 的回复:]
引用 1 楼 jinxfei 的回复:
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。
[/Quote]
关注!!!
pathuang68 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinxfei 的回复:]
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。
[/Quote]
光IP还是不行的吧。比如假定某A机器和某B机器在一个公司内,该公司由一个ADSL猫 + 路由器上网,因此该公司只有一个Internet上的IP地址,那么A和B对于公司外部的服务器来说,他们的IP地址是一样的。所以说光IP是不能解决这个问题的。

事实上,对于P2P软件来说,某个客户端连接成功后会有一个类似ID号,其实就是一个sessionID号,看你怎么理解,总之是唯一的。比如在A机器上登陆了后,服务器端得到的信息是:
某某user - 登陆时间1 - IP地址 - sessionID1

不再A机器上logout的情况下,在在B机器上登陆,那么服务器端将得到:
某某user - 登陆时间2 - IP地址 - sessionID2

我们可以看到登陆时间可能不一样,而且sessionID是绝对不一样的。服务器这时就发现SessionID2这个连接是新登陆的,于是就把sessionID1那个连接close掉。这样就保持了同一个账号,只有一处登陆。
999朵玫瑰 2009-05-09
  • 打赏
  • 举报
回复
up
IT东 2009-05-09
  • 打赏
  • 举报
回复
在数据库中做标记
victorxiang 2009-05-08
  • 打赏
  • 举报
回复

1、将登录信息(登录名、IP、cookie等)存放在数据库或文件
2、用户再次登录的时候比较数据库或文件里的信息
3、设置一个过期时间,保证异常退出情况
Johnson_Hong 2009-05-08
  • 打赏
  • 举报
回复
用一个数据库表或者内存hashmap记录登录用户的id,退出时删除,后台启一个任务定时删除非正常退出的记录
emon123 2009-05-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinxfei 的回复:]
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。
[/Quote]
关注!
jinxfei 2009-05-08
  • 打赏
  • 举报
回复
登录成功后,在数据库中记录用户登录的IP,退出时清除。

登录的验证过程,增加一个检查,看该用户的IP是否为空,且不等于当前IP,
如果是,则提示用户已经在其它地点登录。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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