2012-08-13 32 views
0

我知道防止多用户登录的机制:In asp.net site how to prevent multiple logins of same user id?。我的情况是不同的。用户名退出会员用户

在我的网站上,单个页面会检查用户是否已登录(默认.NET成员资格提供程序)。一旦用户通过身份验证,该页面就会将其重定向到第三方服务器上的高级服务。这意味着我不能使用上述机制在每个页面上检查当前会话ID与先前存储的会话ID。

登录时,我需要结束当前用户的所有之前的会话。我遇到的所有方法(例如FormsAuthentication.SignOut)只能定位当前用户。是否有可能通过成员资格用户名注销用户,所以没有两个访问者使用相同的用户名?

回答

0

您可以创建一个跟踪用户当前会话ID的表/定制会员字段/静态字典/等。用户登录时,将该值设置为当前ID。然后,在您的global.asax处理Application_AuthenticateRequest中,检查当前会话是否与您存储的内容相符。如果没有,请执行SignOut /重定向。

+0

这是否阻止当前用户登录?我需要允许当前用户进入,并终止此用户名的所有以前的会话。 – 2012-08-15 18:12:51

+0

如果在登录时您未将当前ID设置为已通过身份验证的ID,则不会。 – 2012-08-15 20:05:22