在第一次登录会话激活时限制第二次登录

时间:2015-02-18 07:12:44

标签: c# asp.net-mvc web-farm stateserver

对于Asp.NET Web应用程序,使用状态服务器会话和Web场;如何限制用户多次登录。如果用户已登录,则不应允许他使用来自不同浏览器的相同凭据进行登录。 我找到了一个自动注销上一个会话Single Session Enforcement的链接。但要求是让第一个会话保持活力而不是让他退出。每当第二个会话尝试登录时,他应该收到错误消息,指出“用户已经登录”。

我们的会话时间超过20分钟。

提前谢谢。

2 个答案:

答案 0 :(得分:0)

为此,您必须在DB中设置IsLoggedin状态。登录时,您必须检查此状态。如果它是true,则用户已经登录。而logout则必须将其更改为false。

如果用户关闭了浏览器

 $(function () {
        //logic to signout user when he closes browser
        window.onclick = function () {
            clicked = true;
        };

        window.onunload = function () {
            if (clicked == false) {
                $.get("/account/logout");
            }
        };
    });

退出时,您可以查看if (GetUserContext() != null),然后更改IsLoggedIn状态。

答案 1 :(得分:0)

您可以尝试:currect browser

if (!Session.IsNewSession && Request.UrlReferrer == null)
{
    // new 
}