阻止用户使用不同的浏览器(IE和FF)登录同一系统

时间:2011-04-12 06:14:44

标签: java browser servlets java-ee httpsession

我们有一个用户可以登录的Web应用程序。

现在我们想要的是同一个用户不应该使用不同的浏览器登录。

目前,使用两种不同浏览器(IE和FF)的用户基本上可以同时登录同一帐户。当您点击登录按钮时,是否可以使该帐户的所有其他登录失效。

这样做的最佳方法是什么?

PS:我们在Web应用程序中使用Struts,Spring和Hibernate。

谢谢!

3 个答案:

答案 0 :(得分:2)

在服务器端执行此操作是最好的选择。您可以在应用程序上下文中保留已登录的用户。

嗯,有点暗示。使用Servlet过滤器,比如AuthFilter,然后进行验证,可以是isAlreadyLoggedIn(),除了用户名/密码等其他验证之外。现在,在完成此检查后,您可以 - 这取决于您想要对尝试登录的用户做什么,显示“用户已登录”的消息,或者您可以让用户登录并使之前的会话无效。正如here所述。

答案 1 :(得分:0)

您可以将登录的用户信息存储在数据库中,也可以从Application上下文中获取。如果用户已登录,则不允许再次进行会话。

答案 2 :(得分:0)

Google 使用一些 IP地址机制注销登录到另一台计算机的用户,而不是使用相同的浏览器或标签注销。

我们可以使用 geoip database Geolitecity来保存 用户的ip + Balusc使用用户作为密钥和ip存储会话的答案解决方案的地址

在数据库中有一列isLoggedIn。设置为 Y ,如果已记录,如果同一用户从另一台计算机或浏览器登录,则会话无效。如果会话过期,请注意将其设置为 N

*最佳阅读Balusc的回答*

prevent-multiple-login-using-the-same-user-name-and-password使用HttpSessionBindingListener