鹤冲天正解。
如果严密性要求非常高的话,比如说金融系统或者订票系统等,可能还需要在用户表中追加一个时间戳列或者rowversion列,每次登陆后更新完最后登陆时间后,拿到时间戳扔到session中,以后拿时间戳来比较。这样可保绝对的没问题。毕竟时间还有个精确度的问题,如果是sql server的话大概是3.3333333...毫秒,在理论上还有多个用户取到同一时间的可能。
使用Cookie 对象实现
用户登陆成功后,将登陆时间保存两份:一份存入数据库,一份存入登录用户的 Session(或 Cookie)。
用户访问页面时(登陆页面除外),对比这两个时间,如果不相等(一般是 Session 或 Cookie 中的时间早于 数据库中的时间),说明已在其它地方登陆。
可如下将当前用户踢出:
Session.Abandon();
FormsAuthentication.SignOut();
用缓存实现,Cookie保存在客户端的实现不了
怎么会有这种需求?
在数据库中添加一个登录状态字段,如果登录判断登录状态是不是已登录,是的话就提示啊