我正在创建一个用户无法尝试多次登录的应用程序。如果特定用户登录,我的数据库标志值将变为设置为 1,这意味着具有相同用户名和密码的其他成员无法登录。
如果用户注销,我的数据库标志值将设置为 0。一切正常,但现在我有一个不同的问题,即当用户突然关闭浏览器没有注销页面或 session 超时然后自动数据库标志值应设置为 0。 现在我不知道该怎么做。请给我任何解决方案。
最佳答案
在您的 Global.asax
文件中,您有 Session_OnEnd()
public void Session_OnEnd()
{
// Set flag to 0
}
如果您的 sessionState
设置为 INPROC
(这是默认设置),如果您已将其手动调整为 StateServer
,这将没问题> 或 SQL Server
则此事件将被忽略。
当浏览器关闭窗口时,您可以使用 onbeforeunload
在 JavaScript 中
window.onbeforeunload = function(e) {
// call an Ajax function to reset the state.
};
关于c# - 如何防止用户从多个位置或同一台电脑上的不同浏览器登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18591590/