是清除所有客户端Session,不要重启iis这样的操作。
现在有个需求,在执行了某个操作之后希望把所有已登陆用户全踢出去。由于用户验证使用的Session,所以如果能清除所有客户端Session就能达到这个目的。
请高手指教代码该怎么写。
Session.Clear()和Session.Abandon()都只是对当前客户端的Session起作用。

解决方案 »

  1.   

    客户端Session,这个说法就不对,Session还分客户端?服务端?你应该从你的业务逻辑考虑设计,而不是什么清除 Session。
      

  2.   

    应该说客户端 cookie,客户端没有session,Session的意思是会话,是指客户端和服务器的会话,会话利用cookie请求服务器端的session.
      

  3.   

    http://topic.csdn.net/t/20051215/15/4461256.html
      

  4.   

    首先session没有客户端session这么一说.
    非要这么设计的话,为什么不给每个session唯一命名.然后遍历每个session实例,分别Clear().....前提是服务器比较牛逼,对速率不是很要求.
      

  5.   

    在session里再加一个值,作为运行版本验证,值不对就算作没登录。
    或者用sqlserver存储session,把表清空了,session也就清空了
      

  6.   

    session["key"]=null
    session.abandon()
      

  7.   

    纠正一点  session是存在服务器上的 ,不是存在本地浏览器上的饿
      

  8.   

    Session 是存在服务器的   Session.Abandon();
      

  9.   

    谢谢各位的回答。
    可能我说的不够清楚,Session存放在服务器端我是知道的。
    正因为这样,所以我在想有没有代码可以直接清除各个Client存放在服务器端的Session,不同Client在服务器上都有自己的一块Session存储空间,我想把它们一下全清掉,就是这样。
    业务逻辑方面的就不用说了,绕几个弯子总能达到这个目的的。
      

  10.   


    Session.Abandon();只能清除当前用户的Session,不能清除所有
      

  11.   

    也许我的标题应该写清除所有用户的Session
    请高手指教有木可能做到?
      

  12.   

    最简单的办法是用代码重新复盖web.conf
      

  13.   


    捷径啊。不过这样做的坏处明显1、cache也没了
    2、如果SessionState不是设定InProc,毛用都米有。。
      

  14.   

    弱弱的说一句 是不是Session.clear();
      

  15.   

    牛B,这个方法确实可以,随便改一下配置文件,让iis以为网站已经更新过,所有Session之类全失效了别的方法有木有,使用代码清除之类
      

  16.   

    Session 不会回话结束自动销毁吗?