2010-09-26 51 views
1

我在Visual Studio中创建一个网站,2008年当他从不同的位置登录我如何注销从初始位置的用户?(asp.net网站)

我想允许当前用户登录,但注销任何以与当前用户相同的用户名登录的其他人。 (就像Y!M在从不同位置登录时所做的一样:它会从初始位置注销)为了管理登录和注册,我使用visual studio createuserwizard并登录cotrol。

任何ideeas?

+0

您确定这是理想的行为吗?我想不出任何可以为此感激的Web应用程序。 (我在多台机器上都安装了gmail,如果在一台机器上使用它,意味着当我回来时我必须从另一台机器上重新登录,这会很痛苦。) – 2010-09-26 16:10:58

+0

我想不出任何其他方式来防止多个用户使用/共享相同的用户帐户。 – Cristian 2010-09-26 16:40:47

回答

0

在做了一些额外的研究后,我想出了一个解决方案。

每当用户登录时,我都会创建一个会话,比如session [“user”] = NewGuid(),然后将该GUID值添加到该用户的数据库字段中。 (例如,在users表中,我添加了一个名为session的新列)

然后,对于用户发送到网页的每个请求,我检查他的会话值是否与在他的会话数据字段中找到的会话值相同数据库表。如果不是,那么这意味着有人在使用该用户名,因此在数据表的会话字段中创建了一个新的值。在这种情况下,我将他注销并保留仅登录的最后一位用户。

0

如何通过Global.asax.cs中的Application_AuthenticateRequest方法检查它们是否已经登录。当然,要做到这一点,您需要先从他们登录的地方开始查找某种表格。您可以获取并使用用户的IP地址,以确定来自不同ISP的代理服务器是否会在该方法中出现折痕。或者,您可以使用cookie来首次设置GUID,然后检查后续登录会话中是否存在相同的GUID,以确定是否要终止其他会话。

它是一个开始。

+0

我一直在设置一个GUID或在登录时查看一些信息,但在实践中我无法获得任何工作。如果你也可以提供一些代码,那将是非常好的。谢谢。 – Cristian 2010-09-26 16:44:51

相关问题