Asp.net如果意外关闭PC,如何更新sql表列

时间:2016-05-11 15:26:17

标签: asp.net vb.net

场景:我正在网站上工作,用户登录并执行一些任务并注销。当用户在网站登录时,我在数据库中输入了一个真值,因此其他用户没有使用相同的用户名和密码登录。

问题:以上情况正常。但是当我意外地关闭PC时我面临问题,并且当用户在我的网站登录时第一次放入数据库的真值。并且第一个用户无法再次从同一台PC登录。

我想要的是什么:我需要一个asp.net中的机制,其中当意外重启PC / shutdown服务器时自动更新sql中的列。

3 个答案:

答案 0 :(得分:0)

您无法使用服务器代码来监控客户端计算机的行为。 我建议您使用到期时间会话重新设计数据库,当“true”值打开但用户尝试再次登录时,它将处理登录事件。

另一种方式可以是允许用户通过电子邮件重置令牌或秘密密码“解锁”自己。

答案 1 :(得分:0)

  

我需要一个asp.net中的机制,当意外重启PC / shutdown服务器时会自动更新sql中的列。

SignalR可以提供帮助。在您的网站上,您有一个HUB,该集线器可以检测用户何时连接或断开连接。只需在调用disconnect时进行映射,并将数据库中的用户设置为false。

我同意之前的评论,认为这是一个糟糕的设计。但SignalR可以为您解决这个问题。

http://www.asp.net/signalr

答案 2 :(得分:0)

  

当用户在网站登录时,我在数据库中添加了一个真值   用户未使用相同的用户名和密码登录。

这不是一个好的设计,因为互联网不可靠。你很封闭;您希望存储令牌,而不是数据库中的布尔值。

解决方案

您需要根据cookie 重新设计系统(或者您也可以使用bearer token)

当用户登录时,创建一个新令牌并将其存储在数据库和cookie中。

当用户请求页面时,使用数据库中的cookie验证提交的cookie。如果它们不相同,请要求用户重新登录。