是一个跨域的cookies的问题,写入cookies的代码是这样的。
HttpCookie cookie = new HttpCookie("username");
cookie.Value = username;
cookie.Domain = ".abc.com";
Response.Cookies.Add(cookie);但是我要删除这个cookie的时候却怎么都删不掉。
各种方法我都试过了。

解决方案 »

  1.   

    顶啊顶啊,难道大家跨域的cookie都是不删的吗?
      

  2.   

    // 执行数据库验证代码略,假设成功
    // 加入Cookie的内容略,假设是string str
    HttpCookie cookie = new HttpCookie("MyCookie",str);
    cookie.Expires = DateTime.Now.AddMinutes(20); // 有效时间20分
    Response.Cookies.Add(cookie);
    Response.Redirect("..."); // 重定向
    然后是删除
    Response.Cookies.Remove("MyCookie");
    Response.Redirect("....") // 转向无论是添加Cookie还是移除,都不执行。请问解决方案。HttpCookie cookie = Request.Cookies[strKey];
    if(null == cookie)
    {
    //cookie不存在
    }
    先看看有没有写入客户端cookie=new HttpCookie("www.xx.org");
    cookie.Values.Add("UserType", ddlLoginType.SelectedItem.Value);
    cookie.Values.Add("UserName", tbUserName.Text.Trim());
    cookie.Values.Add("Password", tbPassword.Text.Trim());
    cookie.Values.Add("Access",i.ToString());
    Response.AppendCookie(cookie);
    //检查COOKIE是否已经写入浏览器
    cookie = Request.Cookies["www.xx.org"];
    if(cookie==null||cookie.ToString()=="")
    {
    //用session存储
    LoginUser loginUser = new LoginUser();
    loginUser.UserName = tbUserName.Text.Trim();
    loginUser.Password = tbPassword.Text.Trim();
    loginUser.UserType = ddlLoginType.SelectedItem.Value;
    loginUser.Access = i;
    Session["www.xx.org"] = loginUser;
    }我以前的代码,没有问题的
    >>>页面仅仅是刷新了一次if you debug, does the code get executed at all? by the way, are you doing any validation?>>>然后是删除>>>Response.Cookies.Remove("MyCookie");
    >>>Response.Redirect("....") // 转向you probably should set the cookie's Expires property to a time in the past
      

  3.   

    三       修改和删除 Cookie1.   其实你不能直接修改一个Cookie,是创建一个同名的 Cookie,并把该 Cookie 发送到浏览器,覆盖客户机上旧的 Cookie。2.   同样您无法直接将其删除一个Cookie,可以通过修改一个Cookie达到让浏览器帮你删除Cookie的目的,修改Cookie的有效期为过去的某个时间,当浏览器检查 Cookie 的有效期时,就会删除这个已过期的 Cookie。
      

  4.   

    cookie创建的时候是没有设过期时间的,也就是说是关闭浏览器才会自动删除。
    本来这个cookie以前是没有跨域的,删除cookie都没有问题。后来我加了跨域以后不论是remove clear还是设置过期时间都不能删除掉cookie了。
      

  5.   

    不能随便设置域,就像你不能设置域让cookie也可以发给yahoo
      

  6.   

    只是我自己网站的域,就是所有二级域名都发送cookie
    1.163.com
    2.163.com
    3.163.com
    都会发送cookie
      

  7.   

    有这样的问题..你可以这样做..获取要销毁的Cookie名称,然后覆盖它,改写cookie的到期时间..Response.Cookies["mycookie"].Expires = DateTime.Now.AddMinutes(-1);
    //Response.Cookies.Remove("mycookie");
    Response.Redirect("dddddddddddddddddddd.aspx");我测试过..如果用Remove是不能销毁的..设置过期时间才能真正的销毁该Cookie
      

  8.   

    HttpCookie hck = HttpContext.Current.Response.Cookies["名称"];
    hck.Value = ""   //清空
    hck.Domain = "abc.com";
    hck.Expires = DateTime.Now.AddYears(-1);  //设置无效