2011-06-09 39 views
0

如何防止单个用户同时从多台计算机登录到我的asp.net网站?asp.net - 防止单个用户多次登录

我已经尝试使用应用程序服务器端状态管理,但它不能正常工作。

+0

#1的考虑是不要把你的网站搞砸。记住网络本身是无状态的,用户可以在浏览器中打开50个标签页。你不想让你的网站无法在多个标签中工作。 – 2011-06-09 18:17:24

+0

已经提出了这个问题的几个变种。尝试通过http://stackoverflow.com/search?q=asp.net+prevent+multiple+logins浏览想法。 – 2011-06-09 18:19:58

回答

1

1)如果您正在使用Coookies跟踪用户,

当你用户登录写入一个唯一的GUID到数据库中,并将其存储在他们的身份验证cookie,那么每一个页面请求你检查,看看他们是否(GUID)是相同的,如果不是,则将其注销。 2)如果不使用cookie,请将用户名,GUID存储在Application Cache中,并将用户Session变量存储起来。比较用户会话和应用缓存,看他是否已经登录。

+0

但问题是,如果用户关闭浏览器无需注销或供电停止到那台电脑,然后没有更新,Guid数据库,它将永远登录...... – 2011-06-09 18:18:26

+0

该日志也可能包含过期时间戳。如果找到匹配项,请用当前时间更新时间戳。如果用户在设定的时间内未访问该站点,请清除GUID并要求他们再次登录。 – 2011-06-09 18:24:21

+0

好吧,我想我在我的帖子中不清楚:)。当用户从其他浏览器登录时,如果他已经在其他位置(GUID存在)的其他位置登录,则可以为该用户创建一个新的GUID,并将其替换到主表中。您需要确定上次登录是否推出prev用户,或者首次登录不允许新用户登录!这有帮助吗? – Akhil 2011-06-09 18:32:16