我他妈的真是没辙了,我在页面中第一次用cookie,第3个页面便失效了;于是我改用session,没想到我把timeout设成60,但我一顿大便回来后,session就失效了;这个事情,我在CSDN上发过,最后有两种解决方案:1、把session改为服务器的session,即cookieless,我觉得这影响速度。2、大家普遍推荐用cookie。于是我就又用cookie了。
这次倒是很好,这次到明天就一个星期了,很顺利。但就在今天,cookie还没顺利到一个星期,他妈的,cookie就有无故失效了。而且不是每次都是,但一般都是到第2个页面就失效了,就是说,它只能使用一次!!当然,如果你被系统推出来,然后再进页面,就会又好了,当然,也撑不了几次。所以我是没辙了,所以把我的login页面公布一下,请大家帮忙参考一下,有什么错误没有。login.aspx:if(dr.Read())

HttpCookie mycookie=new HttpCookie("yonghu");
mycookie["yonghuming"]=dr["yonghu"].ToString();
mycookie["islogin"]="yes";
Response.Cookies.Add(mycookie);
} 各页面在page_load时,都有一个判断:string cookieyonghuming,cookieislogin;
try
{
HttpCookie cookie = Request.Cookies ["yonghu"] ;
cookieyonghuming = cookie["yonghuming"].ToString();
cookieislogin = cookie["islogin"].ToString();
if(cookieislogin!="yes")
{
Response.Write("<script language=javascript>alert('您无权访问本页,请先登录');location.href='../login.aspx';</script>");
}
}
catch (Exception) 
{
Response.Write("<script language=javascript>alert('错误:您无权访问本页,请先登录');location.href='../login.aspx';</script>");
}结果,页面总是无故提示:您无权访问本页,请先登录
从这里看,不是cookie不存在,而是cookie的结果不正确,但不是每次都这样,有时顺利,有时不行。
大家帮帮忙,看看是怎么回事啊!!!谢谢,不尽

解决方案 »

  1.   

    你的cookies只保存在内存中,没有保存在硬盘也呀我想要是保存在硬盘中就不会了试试看
      

  2.   

    试试if(cookieislogin.ToUpper().Trim()!="YES")
      

  3.   

    呵呵,能理解,cookies不知道为什么,只保存上次的结果(但是第一次没有问题),后来用session解决问题,不知道那位高手知道为什么!!!
      

  4.   

    你先调试一下看看,是Cookies没有了,还是你的判断的值不相等.
    你使用Cookies的方法是没有问题的.
    cookieislogin = cookie["islogin"].ToString();
    if(cookieislogin!="yes")
    {
    Response.Write("<script language=javascript>alert('您无权访问本页,请先登录');location.href='../login.aspx';</script>");
    }
    你调试一下看看这个地方cookieislogin的值是多少
      

  5.   

    很不幸,根据我测试的结果,就是第一次马上能拿到值,但是从此一后,就出现了延时现象,就是说我说的得到的值是上一次的结果,比如第一次顺利登陆,第二次换了个用户名就没法登陆,但是第三次还是那个用户名的话就能登陆了,我百思不得其解,session就没有这个问题
      

  6.   

    有没设置SESSION或COOKIES的的有效期
      

  7.   

    if(cookieislogin!="yes")
    {
    Response.Write("<script language=javascript>alert('您无权访问本页,请先登录');location.href='../login.aspx';</script>");
    }
    }
    catch (Exception) 
    {
    Response.Write("<script language=javascript>alert('错误:您无权访问本页,请先登录');location.href='../login.aspx';</script>");
    }//先看看提示信息是由哪一段Response出来的,然后看看
    //if(cookieislogin!="yes")的cookieislogin值
    //然后
    //看看出错原因
    catch (Exception) 
    {
    Response.Write(Exception.ToString());
      

  8.   

    if(cookieislogin!="yes")
    {
    Response.Write("<script language=javascript>alert('您无权访问本页,请先登录');location.href='../login.aspx';</script>");
    }
    }
    catch (Exception) 
    {
    Response.Write("<script language=javascript>alert('错误:您无权访问本页,请先登录');location.href='../login.aspx';</script>");
    }//先看看提示信息是由哪一段Response出来的,然后看看
    //if(cookieislogin!="yes")的cookieislogin值
    //然后
    //看看出错原因
    catch (Exception ex) 
    {
    Response.Write(ex.ToString());
      

  9.   

    加一个过期时间不就得了
    HttpCookie mycookie=new HttpCookie("yonghu");
    mycookie["yonghuming"]=dr["yonghu"].ToString();
    mycookie["islogin"]="yes";
             mycookie.Expires = DateTime.Now.AddDays(1);
    Response.Cookies.Add(mycookie);