0

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

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

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

最好的方法是什么?

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

谢谢 !

4

3 回答 3

2

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

嗯,有点提示。使用 Servlet 过滤器,比如说AuthFilter,进行验证,可能是isAlreadyLoggedIn(),在其他验证(如用户名/密码等)旁边。现在,在进行此检查后,你要么 - 这取决于你想用尝试登录的用户,显示“用户已登录”的消息,或者您可以让用户登录并使之前的会话无效。正如这里所讨论的。

于 2011-04-12T06:16:14.407 回答
0

您可以将登录的用户信息存储在数据库中,也可以从应用程序上下文中获取。如果用户已经登录,则不允许让他进行另一个会话。

于 2011-04-12T06:19:55.500 回答
0

Google使用一些IP 地址机制注销登录另一台计算机的用户,而不是在同一浏览器或选项卡中注销

也许我们可以使用geoip 数据库 Geolitecity 来保存用户的 ip + Balusc 存储会话的答案,使用用户作为密钥和解决方案的 ip 地址。

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

*最好阅读Balusc的答案*

防止多重登录使用相同的用户名和密码 使用 HttpSessionBindingListener.

于 2011-04-12T06:21:53.737 回答