2013-11-20 18 views
0

我有一个Web应用程序,用户首次登录以查看页面。我的任务被卡住了,如下所示。如果在另一个系统中登录,则从一个系统注销用户

如果用户从系统A登录并且没有注销,然后他从系统B登录,我如何确保用户在从系统B登录时从系统A注销?

我必须在我的数据库中做什么调整。我有日志表,它保存用户登录时的记录。

这可能吗?

回答

1

登录时只需记录他的IP地址 - 如果当前IP与存储的IP不同,请将其登出存储的ID。

+0

这假设他们的IP是静态的 - 可能是一个小型Intranet上的安全假设,几乎肯定不会在互联网上。我们不知道哪些是OPs情况(或哪个更接近他们的情况) –

+0

由于提供的信息量极少,这似乎是一种可行的策略。提供的其他解决方案(sessionID,GUID)也是可行的。我也注意到,OP没有对任何建议询问/提出意见:( – KevinDTimm

+0

我认为IP方法太容易出错,考虑到替代方案和涉及的工作.OP,或许还需要安全性,以至于你即使在同一台计算机上,也无法一次处理两个地方的相同数据。 –

1

你没有多说这个结构。但我想你有一个“用户”表。

在那里你可以有一个会话ID,如果有变化,那么你已经登录,在另一个地方。因此,如果您登录到“系统A”,您将获得一个SessionID,您可以随时查看每次通话或每次通话。

然后,您登录到“系统B”,创建一个新的会话ID并应用到用户表。

然后,“系统A”会在某个时刻查找它,并且看到它与它所了解的不一样,并告诉用户再次登录,或者只是强制退出登录。

1

我能想到的将是最简单的方法 -

1)在用户成功登录,系统会创建一个GUID并保存它里面用户的SessionState的,以及在用户的表。

2)当用户请求页面时,将用户的SessionState值与用户表中的值进行比较。

3)如果不相同,则重定向到登录页面。

相关问题