用.net开发了一个网站,登录后如果检验成功  则跳转到相应页面(Response.Redirect)
在登录页面产生校验码 和输入的校验码对比代码如下: if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
  {
            myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
            return;
  }多数用户都没有问题只有极个别用户登录是提示if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())这句话出错提示“未将对象引用到实例” 在我自己的机器上访问将cookie禁用后也是出现上述问题,所以我认为是客户端的cookie没有启用,但是我查看客户端确实是启用的。该如何解决这个问题,有没有人遇到过?
我写一个很简单的页面,在当页产生的session,本页可以访问,一旦跳转到其他页面,再去读取去session 就出现session未将对象引用到实例。
郁闷中......

解决方案 »

  1.   

    if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
      {
      myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
      return;
      }
    =>
    if(Session["checkCode"]==null)
    {
       myDbAccess.ExeJs("alert('系统提示:校验码未生成!');", Page);
      return;
    }
    if (CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
      {
      myDbAccess.ExeJs("alert('系统提示:你输入的校验码不正确!');", Page);
      return;
      }
      

  2.   

    工具-> 文件夹选项-> 在不同的窗口中打开不同的文件夹 
    也可能让Session 失效 。不怎么稳定 。
    看能用Cookie协作不 。
      

  3.   

    应该不是Session的问题,Session是存储在服务器端的,跨页面都是有效的。
    如果user有一个有效的session,并且session没有过期,那么在程式页面都是
    可以读取到这个session的。
      

  4.   

    为null的时候 还 ToString() 当然会报错.
      

  5.   

    你要确定session里面有值才行,不然tostring会出错的
      

  6.   

    不要乱tostring
    P哥告诉我的
      

  7.   

    我的Session["checkCode"]是页面一载入就生成的一个校验码图片,用户需要输入校验码,然后登录,点击登录的时候,报这个错误的。是部分用户出现这个情况,大多数没有错误。
      

  8.   

    你这个情况就是客户端cookie未写入导致的Session的实现是依托于cookie的
      

  9.   

    是Session 丢失了
    Session  有效时间设置长点        
      

  10.   

    怎么设置呀,我看客户端是启用的呀,难道还有别的地方那个限制吗?有一台win7 的ie9有一台xp 的ie6还有 VISTA ie8
      

  11.   

    Session.Timeout = 10; 这样就是10分钟了 登录页面加载的时候设置下吧
      

  12.   


    不行 当页生成的session 只在当页有效
      

  13.   

    先判断Session里是否有值,再进行ToString(),如果Session为Null的话,是无法进行TOString滴,所以会报错滴
      

  14.   

    if (Session["checkCode"]!=null && CheckCode.ToLower() != Session["checkCode"].ToString().ToLower())
      

  15.   


    现在的问题是这几台电脑获取不到登录时系统分配的校验码(ession["checkCode"])如果先判断Session里是否有值,程序是不出错了,但是无法登录,也就是永远验证不过去。
      

  16.   

    关键可能是session失效了,这个LZ可以去了解下session的几种保存方式,所以在使用session一定要判断下该会话内容是否还存在
      

  17.   

    <sessionState mode="StateServer",试试