为了账号安全,请及时绑定邮箱和手机立即绑定

账户 安全 和 排斥性

账户 安全 和 排斥性

慕桂英546537 2018-12-11 14:05:41
网站开发。遇到的问题: 一个账户 ACCOUNT1 登陆后,在另外一个地方,同一个账户ACCOUNT1又登陆,则前一个要被登出。怎么实现这个功能。就是说同一个账户只能有一个在线。如果在其他地方,在登录,则当前账户登出。。就像QQ一样。。  怎么实现呢?
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

果严密性要求非常高的话,比如说金融系统或者订票系统等,可能还需要在用户表中追加一个时间戳列或者rowversion列,每次登陆后更新完最后登陆时间后,拿到时间戳扔到session中,以后拿时间戳来比较。这样可保绝对的没问题。毕竟时间还有个精确度的问题,如果是sql server的话大概是3.3333333...毫秒,在理论上还有多个用户取到同一时间的可能。

查看完整回答
反对 回复 2018-12-15
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

用户登陆成功后,将登陆时间保存两份:一份存入数据库,一份存入登录用户的 Session(或 Cookie)。

用户访问页面时(登陆页面除外),对比这两个时间,如果不相等(一般是 Session 或 Cookie 中的时间早于 数据库中的时间),说明已在其它地方登陆。

可如下将当前用户踢出:

 

Session.Abandon();
FormsAuthentication.SignOut();


查看完整回答
反对 回复 2018-12-15
  • 2 回答
  • 0 关注
  • 453 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信