我有一个应用程序验证只有一个用户应该一次使用该应用程序。为此我们在DB表中放置一列。默认情况下,列值为“非活动”。用户登录后,列值将更改为“活动”。用户正确注销后,列值将更改为“非活动”,会话结束。但是当用户不正确地关闭窗口时,注销代码不起作用。我尝试使用onunload,但onunload的问题是因为我们正在使用磁贴,每次我们点击链接注销时都会发生。所以有人可以帮我直接关闭窗口时如何做到这一点吗?
提前致谢...
答案 0 :(得分:0)
您不应该在数据库中保留一个条目来跟踪用户是否在线。相反,您必须将所有用户名保留在应用程序上下文中,并且每当用户登录时,您必须检查用户名是否已在应用程序上下文中。如果没有,请将其添加到上下文中,否则用户已经登录。
使用DB列来了解用户是否处于活动状态是一个非常糟糕的主意。如果完全使用它,则每次关闭浏览器窗口时都必须使用javascript调用事件。此外,由于某些网络问题,服务器不会拦截窗口关闭事件,导致用户仍然在数据库中显示为活动状态