我正在开发一个Web应用程序,我希望确保该网站每个用户一次只能登录一次。 当用户登录时我正在更新表列islogged = 1当我正在更新loglog时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..."); }
});
}
答案 0 :(得分:0)
或者,您可以将商店会话ID与当前登录状态一起存储为true或false。当用户点击时,只检查loggedin标志是否为真并采取所需的操作
答案 1 :(得分:0)
请查看以下具有类似Q&amp; A的链接。