在C#.NET中, 使用用户登录然后把用户名存在 User.Identity.Name.ToString(); 里边. 在程序运行过程中随时都可以读取该用户名.    现在我还需要保存对应用户的一些信息,例如所在部门.  我现在用 Session["bmmc"]=dr["BMMC"].ToString(); 来保存.
但现在出现一个问题,  当我一段时间内不用IE, 再用的时候, 它就会对有 Session["bmmc"]赋值的地方出现错误!!  可能是过期了,  现在我想问问大家有什么办法,在程序中保存变量, 让它永远不过期的?
-------------------------WEBCONFIG-
<sessionState mode="InProc"  stateConnectionString="tcpip=127.0.0.1:42424" 
        sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" 
    cookieless="false" timeout="1000"   />
-----------------------------------------------
上边的timeout值我设成更大,但是还是没有用, 该如何设,在哪里设SESSION值为无时间限?

解决方案 »

  1.   

    不可能不过期的。重置应用程序所有session就都没了
      

  2.   

    有时间,在Webconfig里面设的!
      

  3.   

    session是有时效的,不可能永不过期。你可以在程序运行期间,暂一段时间去重写一次session,可以达到你要你的效果。
      

  4.   

    应该用Application["Bddm"] 会把内容保存在内存中,而Session只是过程变量
      

  5.   

    试一下: Session.TimeOut = 0或-1;
      

  6.   

    B/S的程序Session不过期??
    建议你试试吧Session.TimeOut = 99999
    嗯~!
      

  7.   

    做一个每隔多少分钟刷一次页面,页面里从新赋值:
    Session["id"]=Session["id"];
      

  8.   

    Session肯定要过期的,你写Session到XML文件里吧
      

  9.   

    在你的配置文件设置一下TIMEOUT的时间. 
    让它永远不过期的想法不对.服务器要释放资源.
      

  10.   

    -------------------------WEBCONFIG-
    <sessionState mode="InProc"  stateConnectionString="tcpip=127.0.0.1:42424" 
            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" 
        cookieless="false" timeout="1000"   />
    -----------------------------------------------
    上边的timeout值我设成更大,1000分钟但是还是没有用, 该如何设,就算SESSION永远不过期我无法设定, 但是我设成TIMEOUT=1000为1000分钟后过期, 那为什么就不行呢.  好象一点改变也没有.  请问我想设成3小时内不过期, 如何设?
      

  11.   

    变通方法,定时设置或刷新若让其永不过期,有点失去Session的一个重要特点
    莫如不用Session,可将信息保存到数据库中好了,用时读取
      

  12.   

    必须用Session吗?用数据库不行吗?
      

  13.   

    你这种情况最好用cookie好点,如果真的能永远的不过期,你的服务器迟早要down掉
      

  14.   

    一个session每个客户占用20k,永不过期,我看你服务器有多少内存可以供应?
      

  15.   

    session不过期是不科学,不可取的,要是想要一个不消亡的数据,就放到web.config里面写
        <appSettings>
           <add key="变量名" value="变量的值"></add>
           
        </appSettings> ,加个元素,这样只有当服务停止,服务器重启,这个值才会消亡!
      

  16.   

    可以保存到SQL数据库啊或者XML文件!
      

  17.   

    试试这样:
    每次刷新或者换页面的时候:
    <input type="hidden" name="myname" value=<%=thevalue%>>
      

  18.   

    用Cookie代替..或者用Application..另外以下是对Session的一个简要说明:session是每次新的客户端访问会生成一个唯一的SessionID..你关闭后session也就SessionID失效,而与之关联的Session的其他变量也就找不到对应了SessionID..所以这些变量你是访问不到的.这些和对应SessionID的Session变量并不是消失.而这些变量会在Session.Timeout的时间到期后被回收..
      

  19.   

    在iis中也有会话的时间默认是20分钟,满20分钟iis就要回收,好像只设定web.config的session时间还不够
      

  20.   

    哈哈,楼上的有人误导楼主
    Application 能保存用户名啊,那不是所有登录的人都用一个用户名了。
    IIS里有个设置SESSION过期时间的,见意楼主设长些,在程序在如果 Session["LoginID"] == null  则要求重新登录。
      

  21.   

    Session想要长时间不过期,还不能用InProc模式,因为IIS会定期重启你的进程。不过期的想法是绝对错误的,你只能在页面那边加个脚本多少分钟刷新一次。
      

  22.   

    Session不审不建议把时间设的太长,你把cookie写入客户端,以后取时直接调用
      

  23.   

    Cookie不能保存敏感信息,因为Cookie不可信……
      

  24.   

    As usual,you can store your session in sqlserver or stateserver mode.
    never expired?perhaps only sqlserver mode.