我正在编写一个 Web 应用程序,我想将它作为一个单用户应用程序(在其他系统甚至其他浏览器中都没有登录)。
一种解决方案是在用户登录时在我的数据库中设置一个表字段,并在他注销时重置。
但问题是发生意外事件时(如浏览器崩溃、断电、网络故障等)。
实现这一目标的最佳方式是什么?
谢谢
我正在编写一个 Web 应用程序,我想将它作为一个单用户应用程序(在其他系统甚至其他浏览器中都没有登录)。
一种解决方案是在用户登录时在我的数据库中设置一个表字段,并在他注销时重置。
但问题是发生意外事件时(如浏览器崩溃、断电、网络故障等)。
实现这一目标的最佳方式是什么?
谢谢
您的解决方案是正确的,您应该为此操作在 db 中设置一个字段。但是对于浏览器崩溃或其他事件,你应该设置一个计时器,如果用户在提到的时间内没有做任何事情,你应该让他退出。您可以编写一个控制台应用程序并将其放入服务器的任务调度程序中,或者如果您使用 Linux 服务器,您应该使用 Cron Jobs。以其他方式,您可以为 Sql Server 数据库编写一个 sql 作业。
更新:您可以在数据库中为上次操作时间设置一个字段。当用户单击某个链接或使用页面时(我的意思是向服务器发送请求的操作),您应该使用当前时间更新该字段。如果您在 30 分钟内没有做任何事情,您应该警告用户,系统会记录您的帐户。控制台应用程序,您放入任务调度程序,检查当前时间和上次操作时间,如果差异超过 30 分钟,您知道用户必须登录。
你没有办法做到这一点。
想象一下用户 A 和 B 在执行 NAT 的路由器后面,这意味着他们在互联网上都有相同的 IP 地址。
您如何确定哪个是哪个而不在浏览器中存储一些数据?
如果您将数据存储在浏览器中,那么您不能为不同的浏览器进行一次登录