如题,我的需求是这样的:当后台管理员将前台的某用户禁用以后,该用户(在登录状态下)将不能继续做任何操作。我现在的系统设计是:仅仅在登录时会判断一下该用户的状态是否被禁用,登录成功以后的各种操作便不再判断了,所以在登录状态下,后台把用户禁用掉,只要用户不退出,他仍然能继续做任何操作。我的想法是,如果能取到所有的Session数据就好了,这样在禁用的时候,就把这个用户的会话失效掉,让他强制退出,但是该怎么拿到他的Session数据呢?或者这个问题还有没有更简单的解决办法呢?多谢大家!

解决方案 »

  1.   

    最简单和有效的方式是在httpmoudle里面判断,那就是说你只要添加一个类,然后写一个方法就好了。非常简单
      

  2.   


    我现在用的是MVC框架,解决这个问题很简单,只需要在控制器上加个过滤器,每次请求时判断一下用户的状态就好了,但是我还是想用将Session失效的这种方式
      

  3.   

    如果你坚持不修改程序的话。那么可以这样做,把session放到sqlserver中,在updata你用户表的时候,你可以用触发器,跨用户,清相关表中的相关session信息。问题在于,你的session必须是可序列化的。
      

  4.   


    现在的Session都是放到内存里的,难道ASP.NET就没有提供可以访问所有Session数据的方式?
      

  5.   

    > 难道ASP.NET就没有提供可以访问所有Session数据的方式?
    没有.这是session的定义所致.
      

  6.   

    还是用全局过滤器吧你的问题是可实现的。感觉利用APPLICTAION存储SESSTIONID和USERID可以判段的不过我感觉还是过滤器方便