我们有一个使用Struts 2,Spring和Hibernate的Web应用程序。
目前,使用两种不同浏览器(IE和FF)的用户可以同时登录同一帐户。
现在,当您点击登录按钮时,我们需要使该帐户的所有其他登录失效。
e.g。用户登录到Firefox上的帐户。同一用户登录IE中的同一帐户。在这种情况下,当他登录IE时,他在firefox中的会话需要被无效。
我们有什么方法可以做到这一点?
请帮忙
答案 0 :(得分:2)
如果您跟踪用户在哪个会话中登录,那么是的,我认为可以完成。你已经拥有自己的身份,现在每次登录时,你都会看到所有当前登录用户及其会话的列表(保存在你喜欢的任何数据结构中:即静态哈希映射(我知道静态是坏的:-),但它们也是有时是有用的)并使他以前的会话无效。
您坐在服务器上,您可以随意组织会话。
答案 1 :(得分:1)
同意Tomasz Stanczak ..但请务必检查帐户第二次登录的IP地址。否则,很有可能退出原始用户以便入侵者登录: - )
在我看来,我会先请求用户在登录之前从其他地方(比如说IE)退出(比如FF)。看一下gmail所具有的功能(页面底部 - 帐户活动),您可以从一个地方注销所有其他会话。
答案 2 :(得分:1)
关键是“同一帐户”。如果用户从多个浏览器登录到不同的帐户,我绝不会这样做。
当用户登录时,为与该帐户关联的会话变量取随机值。如果会话的值与此值不同,则它不是有效的会话。