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