不会删除的Cookie

时间:2012-02-09 01:54:38

标签: c# cookies

我觉得我被饼干怪物吃掉了。我删除了cookie,他们马上回来了。 注销时,我执行以下代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        DeleteCookie("UserId");
        DeleteCookie("UserName");

        Session.Abandon();
        GoToPublicHomePage();
    }

    private void DeleteCookie(string name)
    {
        if (Request.Cookies[name] != null)
        {
            HttpCookie cookie = new HttpCookie(name);
            cookie.Expires = DateTime.Now.AddDays(-1);
            Response.Cookies.Add(cookie);
        }
    }

在“GoToPublicHome()”调用之前,我检查Request.Cookies并且UserId和UserName cookie处于响应状态。

在我的Global.asax中 - >在GoToPublicHome调用之后立即执行的Session_Start代码,它们已经回来了......就像糟糕的便士一样。

2 个答案:

答案 0 :(得分:1)

您编写的代码指示.Net创建新的HttpCookie,而不是创建“仅在不存在时”。 在MSDN页面上有一个例子: http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx

答案 1 :(得分:0)

Response.Cookies.Remove(name)怎么样?