我在做一个论坛的网站,有几个变量需要用SESSION存起来,但是SESSION隔一段时间久失效了,所以 我用的 方法 就是 把变量保存在SESSION的同时保存一份在COOKIES中,每次SESSION变量变化的同时就更改下COOKIES,然后如果SESSION失效然后再从COOKIES中读取出来,请问这样会有问题吗?主要是频繁的操作COOKIES,因为这几个变量的变化比较频繁

解决方案 »

  1.   

    我就是这个干的主要是解决登录验证权限的问题。。单个界面中的变量保存在ViewState中
      

  2.   

    2楼的 一个网站肯定不只一个 页面罗,所以当用户浏览不同的版块需要把他上次浏览的版块记住,因为页面是动态的更具他上次选择的版块需要返回 所以要 记录成SESSION里面的.
      

  3.   

      
      这个图看到了什么?请,静10秒后再看下面的回复吧。
    Cookie 不在你的服务器,是在客户机上的浏览器中。
    那你问我为什么能取到Cookie 呢?
      是因为客户端请求时从客户机发来的数据中有Cookie, 就藏在ViewState中,如果连接中断,那Cookie 就拜拜了,
       连接中断,那Cookie 就没有了,除非用户再次提交给你了。
     Session 为什么要失效
      答:就是为了不要耗尽服务器的资源.你要做的是改Session 失效的策略,
      而不是纠结于Session 失效后怎么做.如果你真是不想弄那个Session ,或说我一看到Session 就烦。对session 有仇。
      那你可以用Dictionary<string,Dictionary<string,object>>  这类数据结构来储存每个用户的数据,这样你要那个用户保留时间的长短可以你自已来定。--完全自由.
     对于数据结构来说,这是面向对象语言的长处,恰恰 C# 就是面向对象的语言。
      所以用C# 自已写Session 这类数据结构是很方便的。
      

  4.   

    通常session 保存的数据不多,只是表示 哪个用户是不是在线就好了,当然每个用户的特有信息可以写在Session中。
     
    当然是临时的数据,比如,用户在当前页读到第几页啊,控件中填有哪些数据啊,这类临时数据才要用到Session的,为了用户可以在短时间内用通过服务器  恢复 当前的记录。
      

  5.   

    session一般不适合保存太多数据的
      

  6.   

    谢谢!你的那么长的回答,我是说 SESSION里面保存的就是 用户的简单 信息,但是用那种维持SESSION不 被丢失 会很浪费资源的,比如 如果 挂机 那么 这个 资源 就必需一直维持着,所以我才想用SESSION和COOKIES结合的办法 ,就是允许失效,但是 失效后能够通过COOKIES恢复。
      

  7.   

    我想问 这种用SESSION和COOKIES结合的办法也有缺点,就是SESSION经常改变COOKIES也会经常跟着变化,我问这样频繁的操作COOKIES会不会有问题或者影响性能。