[英]Limit Only One Session Per User In ASP.NET Mvc 4
我正在开发一个Web应用程序,在该应用程序中,我想确保该网站一次仅允许每个用户一次登录。 当用户登录时我正在更新表列islogged = 1当注销时我正在更新islogged = 0但问题是用户会话超时或用户关闭浏览器时我无法捕获此事件。我正在使用sqlserver状态来存储会话,因此Session_End在此状态下未触发事件。 它仅在InProc State中起作用。 在浏览器关闭事件中,我也尝试过onunload事件。 但也会在关闭的标签页上触发此事件。 无法区分标签页关闭和浏览器关闭。 我只需要一个并发用户登录。 还有其他方法可以实现这一目标。
我正在使用此代码捕获浏览器关闭事件。
<body class="fixed-top" onclick="clicked=true;" onunload="CheckBrowser()">
<script type="text/javascript">
var clicked = false;
// var xmlHttp
// var browser = navigator.appName;
function CheckBrowser() {
debugger
// var browserClose = isUserClickedCloseButton();
if (clicked == false) {
$.ajax({
url: "@Url.Content("~/Account/LogOff")",
type: 'Post',
success: function (data) {
},
error: function () { alert("Error On Logut..."); }
});
}
或者,您可以将存储会话ID与当前登录状态一起存储为DB或True。 当用户点击时,仅检查登录标志是否为真并采取所需的操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.