我的一个B/S的收费系统,用Session["Login"]判断用户是否登录,用户登录这个收费系统后可能长时间不用,比如几个小时,但是几个小时后再操作的时候就提示Session超期要重新登录了。
有没有办法让Session不超期,就是用户登录后就会出现要再输入密码的情况了。我想能不能在页面内放入一个iframe,iframe里面的页面5分钟刷新一次,这样能不能让Session永远保存下去,直到页面关闭。

解决方案 »

  1.   

    Session 时间就算再长,也还是有一个时间,
    如果真象你这样的话,用Cookie吧
      

  2.   

    自己可以定义时间:Session.TimeOut=1000000000000000000000000000000000000000000000000000000000000000;
      

  3.   

    用Cookeis行吗,安全性不好啊。
      

  4.   

    不推荐用IFRAME自动刷新,这样会加重服务器负担。
    改用COOKIE吧。
      

  5.   

    可以用用户名、密码、登录时间等+一个字符串作一个hash,每次取的时候判断hash,
    安全性是没问题的
      

  6.   

    因为这个系统使用的人可能不多,用Cookies安全性没有保证,所以想用iframe刷新页面,但是不知道iframe刷新页面能不能把父框架的Session也刷新了。
      

  7.   

    可以用用户名、密码、登录时间等+一个字符串作一个hash,每次取的时候判断hash,
    安全性是没问题的hash是什么?
      

  8.   

    用Forms验证咯,它内部就是用加密的COOKIE来实现的
      

  9.   


    string hash=System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(tb_Name.Text+tb_PWD.Text+"http://www.163.com","MD5");就是一个加密字符串,加密规则别人是不知道的,所以不能仿照
    在写入cookie的时候写入hash,读取的时候判断hash是否正确,如果正确就执行下一步,如果不正确就重新登录。
      

  10.   


    using System.Security.Cryptography;
    using System.Text;
      

  11.   

    同意楼上的 用Cookie可以存在客户端 每次用户请求的时候都会带上这个Cookie
    就和一次登陆以后都不用登陆是一样的做法
      

  12.   

    web.config中的sessionState节点中Timeout属性设置一下多长时间后超时,分钟为单位
    最大值是525,601
      

  13.   

    能把父框架的Session刷新因为 因为时间存在服务器上
      

  14.   

    我想能不能在页面内放入一个iframe,iframe里面的页面5分钟刷新一次,这样能不能让Session永远保存下去,直到页面关闭。
    ------------------------------
    可以使用这样的方法,不用担心服务器负责的问题。一般,默认的session存在时间为20分钟,你只要设置比如19分钟刷新一次,就可以保持session的存在,并且如此之长时间的刷新对于服务器来说负担微乎其微。
    如果你使用的框架页面,那完成可以在TOP页面里面定时刷新,这样会更好点。
      

  15.   

    好像设置session过期时间 在IIS中也有设置的哦
      

  16.   

    谁说cookie安全就不好,加个密不就KO了。Forms严重也很好!
      

  17.   

    哈哈哈,Dlandiao(D蓝调) 说的好
      

  18.   

    启动aspnet_state服务,在web.config中配置如下:
    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" cookieless="false" timeout="1440"/>