关于一个账号只允许一个浏览器登录和一段时间不操作就让账号自动掉线

关于一个账号只允许一个浏览器登录和一段时间不操作就让账号自动掉线

作为一个C#的新手,我实现这个功能花了两天,现在感觉有点身心俱疲。我怕以后忘了,就先把思路和过程写一下。

在实现功能之前,需要写一个js实时去检测用户的登录状态
其实就是写一个setInterval回调函数,函数里面写一个访问后台的方法

第一,实现一个账号只允许一个浏览器登录
首先,你在登录的时候需要记录一个cookie和一个缓存(比如redis)。存储的是这次登录的唯一的一个值(票据)。
然后,用一张表将用户的登录状态存起来,包括cookie的名字和值。
在登录的时候,判断状态表里面的状态是否是在线。如果不在线,将用户的状态改成在线(登出的时候也需要改变状态为离线)。
如果在线的话,就获取到cookie的名字,将他的值改成新登录生成的值。
js的实时监控的后台方法会判断缓存的值和cookie的值是否一致,cookie的值改变了,就会提示掉线。

第二,实现一段时间不操作账号掉线
上面说的回调函数是有一个多长时间回调一次的参数的。
在后台给你的返回的值是正常在线的时候,用一个变量保存这个返回了正常的次数,当次数达到一定的时候就让他自动掉线就好了。
比如每两秒监测一次,要求30分钟不操作就掉线。1分钟监测的次数是30次,30分钟就是监测900次。也就是当次数达到900就自动掉线就好了。
假如你用的是MVC,你可以将我上面说的js写成一个js脚本放到_layout.cshtml里面,这样只要你使用了模板页,每个页面就都可以监测到。
以上是没有操作的情况。
你可以给body标签写一个click方法,在click的时候,将返回的次数清空就行了。这样就可以分清楚是某操作了,当然,还是不完善的。

写的字有点多,因为种种原因我没有截图,遇到这方面的问题可以耐心的看一下。如果有不清楚的可以问,有大神有更好的方法也可以留言给我,十分感激。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值