日期:2014-05-18  浏览次数:20431 次

一直有个难题解决不了,一个用户已登录,该用户会话还存在的情况下,密码被他人改了,如何注销掉该用户的所有登录?
现在我是用session标记用户是否登录,现在假设用户A已登录,会话还存在,突然,管理员对A用户的密码进行修改,这时,用户A的登录应该是要被注销的,但是,我如何做到注销用户A的登录呢,也就是说如何做到清除已登录A的用户的session?

session的mode是inproc而不是sql

------解决方案--------------------
路过UP
------解决方案--------------------
帮你顶下 我也想知道
------解决方案--------------------
session是不能通知其他session的你必须用application来或者是放在数据库中才能够通知到其他的链接
所以你得让每一个链接都有自己的id,然后保存合法id为一个列表
在需要断指定链接的合法性时将指定链接的id从列表中删除就行了
------解决方案--------------------
这个好象不能用session来做,应该用数据库来做吧.
设一个登陆字段,登陆了数据库里标为true,改密码的时候改为false这样来实现.
------解决方案--------------------
注销session 这个用户的信息
------解决方案--------------------
放数据库吧...弄个在线用户表,修改密码后删掉在线用户
------解决方案--------------------
可以在每个页面里判断 如果密码改了,就K掉
------解决方案--------------------
防止同一用户同时登陆的实现http://www.leadnt.org/post/246.html别人的文章你看看吧
------解决方案--------------------
客户退出或断开时,清空session
------解决方案--------------------
密码修改之后就把这个用户的session给clear或null掉就ok了

------解决方案--------------------
估计是要在数据库字段中用个字段 来标识管理员是否修改了密码,然后程序中用8楼的AJAX 刷新页面
------解决方案--------------------
实质问题,关注一下~
------解决方案--------------------
密码修改完,强制从新登录.

在登录里进行判断用户是否已经登录.

在Application里缓存一个用户列表,采用 用户名和ip组合.

每次登录进行判断用户名在列表里存在不,存在就Remove掉,然后从新添加新的用户名和ip组合.

判断如何踢出用户我是加在了模版页里.
------解决方案--------------------
session标识方法
在你的登陆session或者cookies中添加随机标识位,并且存入该用户数据库记录对应标识字段[需要新增],这样每次登陆都要生成新的标识session,更新数据库这个标识字段。 这样就可以做到用户登陆唯一性;
如果要实现你需要的功能,只需要在管理员更改用户密码的时候,清空或者更改数据库对应字段。
注:在每次操作中都增加用户登陆信息验证,包括用户名,密码,登陆标识位。
------解决方案--------------------
做一个basePage在那里面处理吧
------解决方案--------------------
非要用session的放,可以使用Sql2005里面的SqlDependency

不过偶一般都是用sql表来保存在线状态的
------解决方案--------------------
我估计楼主的努力会白费,Session是寄存在服务器内存中的数据,他们是根据SessionID来读取的,
管理员在改变密码的时候,服务器根本就不知道,这个用户对应的SessionID是什么,又怎么去清除了呢?
你该不会修改一个人的密码,清楚了服务器上所有的Session值吧!

建议:
你可以自己做个Session对象,把信息放在一个Hashtable表中,
那样,你就可以根据,用户的名称来清除他在Hashtable中的值了
------解决方案--------------------
探讨
帮你顶下 我也想知道

------解决方案--------------------
我也想知道
------解决方案--------------------

最好做个在线表,
如果某在线用户密码被修改,则在线表的Flag状态改变

当系统检测到Flag改变的时候,强制此用户重新登录



------解决方案--------------------
用个定时器,定时查看数据库这个用户表,在线用户密码被修改和session的不一样时,清空session
------解决方案--------------------
探讨
引用:
非要用session的放,可以使用Sql2005里面的SqlDependency