P.Response.Cookies.Remove(CookieName)为什么不能正确删除Cookies?Cookies是在A页创建的,我在B页删除,执行完B页后,也没出错,再到A页看一下Cookies的值还那以前设的那个,没能正确删除,请问这是怎么回事?

解决方案 »

  1.   

    老大出来了呀,先谢!刚才跟踪了下,发现执行完P.Response.Cookies.Remove(CookieName);
    后Cookies的value没有发生变化,现在这样就可以:
    System.Web.HttpCookie Cookie = new System.Web.HttpCookie(CookieName,CookieValue);
    P.Response.Cookies.Set(Cookie);
      

  2.   

    删除 Cookie(即把该 Cookie 从用户的硬盘上物理删除)是修改 Cookie 的一种形式。由于 Cookie 位于用户的计算机中,所以您无法直接将其删除。但是,您可以让浏览器为您删除 Cookie。修改 Cookie 的方法前面已经介绍过(即用相同的名称创建一个新的 Cookie),不同的是将其有效期设置为过去的某个日期。当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。所以,删除 Cookie 的方法与创建该 Cookie 的方法是相同的,只不过要把其有效期设置为过去的某个日期。以下示例比删除单个 Cookie 要稍微有趣一些,它使用的方法可以删除当前域的所有 Cookie:Dim i As Integer
    Dim cookieName As String
    Dim limit As Integer = Request.Cookies.Count - 1
    For i = 0 To limit
       aCookie = Request.Cookies(i)
       aCookie.Expires = DateTime.Now.AddDays(-1)
       Response.Cookies.Add(aCookie)
    Next