同一个用户不能再两台电脑上同时登录怎么实现比较好

jsshizhanab 2014-08-11 08:07:48
用的是springMVC 我测试了下 是使用的单例。
...全文
1214 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inhibitory 2014-08-14
  • 打赏
  • 举报
回复
Shiro的单点登录应该能解决这个问题,都说比Spring Security简单好用。
放纵的青春 2014-08-14
  • 打赏
  • 举报
回复
引用 15 楼 jsshizhanab 的回复:
[quote=引用 11 楼 djy18178 的回复:] [quote=引用 10 楼 jsshizhanab 的回复:] [quote=引用 9 楼 abc_key 的回复:] 使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
恩[/quote] 一般都是这么做的 多数是顶下去[/quote]我们是在数据库中实现的 不是在内存中[/quote] 数据库中加一个字段 表示该用户已登录?
jsshizhanab 2014-08-13
  • 打赏
  • 举报
回复
引用 11 楼 djy18178 的回复:
[quote=引用 10 楼 jsshizhanab 的回复:] [quote=引用 9 楼 abc_key 的回复:] 使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
恩[/quote] 一般都是这么做的 多数是顶下去[/quote]我们是在数据库中实现的 不是在内存中
skgary 2014-08-12
  • 打赏
  • 举报
回复
引用 13 楼 jsshizhanab 的回复:
引用 12 楼 a8441223 的回复:
以前做的一个比较大气的,把登陆的用户信息存放在application中,在登陆时看application中查,有的话就清掉,没的话就登陆,不过纠结的一点是如果后来的操作快的话后来的就又登陆进去了,不过我提出的意见是记录用户IP,不过一个小组的也没去实现,都是懒蛋
记录用户IP这个不行的,其实用UUID用来标识就可以了
还有一种就是把系统所有的登录服务做到同一服务器(或集群)上。 由这个服务器(集群)统一确认用户的session是否有效
jsshizhanab 2014-08-12
  • 打赏
  • 举报
回复
引用 7 楼 skgary 的回复:
[quote=引用 6 楼 jsshizhanab 的回复:] [quote=引用 5 楼 skgary 的回复:] 如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
不是同一台服务器,为什么不是同一台服务器就不能有session啊,菜鸟求指教啊[/quote] 因为你得考虑同一个用户在不同的服务器登录的情况。 session一般情况都是在存在服务器本地的。[/quote]哦
skgary 2014-08-12
  • 打赏
  • 举报
回复
引用 6 楼 jsshizhanab 的回复:
[quote=引用 5 楼 skgary 的回复:] 如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
不是同一台服务器,为什么不是同一台服务器就不能有session啊,菜鸟求指教啊[/quote] 因为你得考虑同一个用户在不同的服务器登录的情况。 session一般情况都是在存在服务器本地的。
jsshizhanab 2014-08-12
  • 打赏
  • 举报
回复
引用 5 楼 skgary 的回复:
如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
不是同一台服务器,为什么不是同一台服务器就不能有session啊,菜鸟求指教啊
jsshizhanab 2014-08-12
  • 打赏
  • 举报
回复
引用 12 楼 a8441223 的回复:
以前做的一个比较大气的,把登陆的用户信息存放在application中,在登陆时看application中查,有的话就清掉,没的话就登陆,不过纠结的一点是如果后来的操作快的话后来的就又登陆进去了,不过我提出的意见是记录用户IP,不过一个小组的也没去实现,都是懒蛋
记录用户IP这个不行的,其实用UUID用来标识就可以了
鬼山断魂 2014-08-12
  • 打赏
  • 举报
回复
以前做的一个比较大气的,把登陆的用户信息存放在application中,在登陆时看application中查,有的话就清掉,没的话就登陆,不过纠结的一点是如果后来的操作快的话后来的就又登陆进去了,不过我提出的意见是记录用户IP,不过一个小组的也没去实现,都是懒蛋
放纵的青春 2014-08-12
  • 打赏
  • 举报
回复
引用 10 楼 jsshizhanab 的回复:
[quote=引用 9 楼 abc_key 的回复:] 使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
恩[/quote] 一般都是这么做的 多数是顶下去
jsshizhanab 2014-08-12
  • 打赏
  • 举报
回复
引用 9 楼 abc_key 的回复:
使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
xlight2023 2014-08-12
  • 打赏
  • 举报
回复
使用memcache,用户的登陆后使用用户id做key,session做value,放到memcache中; 使用相同的用户名登陆时,则现根据用户id到memcache中查找,若存在则表示该用户已经登陆了,再做具体处理: 1、踢下线,删除第一个用户的session; 2、第二个用户不能登陆; 一般将session和用户信息绑定单独保存,用户操作时查询该session是否存在。
skgary 2014-08-11
  • 打赏
  • 举报
回复
如果你只有一台服务器的话,可以做一个静态的hashtable,存放ID和session的关系。 用户登录的时候,如果这个hashtable里能按ID找到session,则把 session invalidate或者设置一个标志。。。 另外,还要实现session listener,当session close 的时候,要把id-session关系删除。 如果你还是有不同的服务器,做负载均衡的话,就复杂一些了。
jsshizhanab 2014-08-11
  • 打赏
  • 举报
回复
没积分了 有个问题顺便也在这儿问了吧 在mybaits中怎么使用merge语法,或者实现数据存在则修改,不存在则删除的功能也可以 谢谢大家了!!
jsshizhanab 2014-08-11
  • 打赏
  • 举报
回复
引用 2 楼 longtian1213 的回复:
可以使用spring security
这个貌似用不起来
S117 2014-08-11
  • 打赏
  • 举报
回复
可以使用spring security
jsshizhanab 2014-08-11
  • 打赏
  • 举报
回复
客户端是.net做的,通过webservice 通讯

62,621

社区成员

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

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