用户在另一个浏览器中登录时,在一个浏览器中使用户会话无效?

时间:2011-05-09 09:24:07

标签: java spring struts2

我们有一个使用Struts 2,Spring和Hibernate的Web应用程序。

目前,使用两种不同浏览器(IE和FF)的用户可以同时登录同一帐户。

现在,当您点击登录按钮时,我们需要使该帐户的所有其他登录失效。

e.g。用户登录到Firefox上的帐户。同一用户登录IE中的同一帐户。在这种情况下,当他登录IE时,他在firefox中的会话需要被无效。

我们有什么方法可以做到这一点?

请帮忙

3 个答案:

答案 0 :(得分:2)

如果您跟踪用户在哪个会话中登录,那么是的,我认为可以完成。你已经拥有自己的身份,现在每次登录时,你都会看到所有当前登录用户及其会话的列表(保存在你喜欢的任何数据结构中:即静态哈希映射(我知道静态是坏的:-),但它们也是有时是有用的)并使他以前的会话无效。

您坐在服务器上,您可以随意组织会话。

答案 1 :(得分:1)

同意Tomasz Stanczak ..但请务必检查帐户第二次登录的IP地址。否则,很有可能退出原始用户以便入侵者登录: - )

在我看来,我会先请求用户在登录之前从其他地方(比如说IE)退出(比如FF)。看一下gmail所具有的功能(页面底部 - 帐户活动),您可以从一个地方注销所有其他会话。

答案 2 :(得分:1)

关键是“同一帐户”。如果用户从多个浏览器登录到不同的帐户,我绝不会这样做。

当用户登录时,为与该帐户关联的会话变量取随机值。如果会话的值与此值不同,则它不是有效的会话。