HttpCookie cok = Request.Cookies["username"];
                if (cok!=null)
                {
                    cok.Expires = DateTime.Now.AddSeconds(-1);
                    Response.Cookies.Add(cok);
                }
                HttpCookie cok1 = Request.Cookies["password"];
                if (cok1 != null)
                {
                    cok1.Expires = DateTime.Now.AddSeconds(-1);
                    Response.Cookies.Add(cok1);
                }如上面代码,我在页面加载时,删除username 和 password 这两个cookie  确认删除成功在之后的方法中用以下代码去判断,并跳转页面,按道理,cookie已删除,是不会进入1.aspx的。但是调试发现,第一次进testCookie时,还是会进入if,并跳转,到第二次才不会进if。这是为什么,求解决方法,谢谢。
 protected void testCookie()
        {
            if (Request.Cookies["username"]!=null && Request.Cookies["password"]!=null)
            {
                Response.Redirect("1.aspx", true);
            }
        }

解决方案 »

  1.   

    Request和Response是两套东西。你“之后的方法”根本就是取的Request中的Cookie!
      

  2.   


    那我该怎么写这个判断语句呢   我就是要判断这两个cookie是否存在  再决定跳转
      

  3.   

    Response.Cookies["cookie"].Expires = DateTime.Now.AddDays(-1);
      

  4.   


    改成response 也还是不行  谢谢  有别的错误么?
      

  5.   

    要么判断Cookie的过期时间试试,我指那个testCookie方法。
      

  6.   

    什么“改成Response”之类的根本是无厘头的。你看来根本没有去分析原因。你的第二段程序的业务逻辑,是去获取浏览器向web服务器传来的cookie。而第一段程序的业务逻辑,只是注册了Response的cookie,但是并不立刻写到浏览器,而你就调用第二段代码了。自己重新设计你的逻辑流程吧。这种简单的逻辑还是自己设计过一次,才知道编程应该在理解了一点原理之后来编程(而不是人家在csdn上说什么你就照抄什么)。
      

  7.   


    谢谢耐心指出问题。因为是刚接触网页这块,确实有些急功近利了。明天研究一下Response和Request。如果还有问题,还希望不吝指教。
      

  8.   


    找到原因了,因为cookie是在客户端的,所以需要页面回传之后才能生效,我虽然删除了,但是没有回传页面,所以当时还是存在的,是这样的吧?