为什么我不能删除cookie?

时间:2016-08-05 12:48:35

标签: c# asp.net asp.net-mvc cookies

我的Home - 控制器中有以下代码:

public ActionResult MyPage()
{
    if (HttpContext.Request.Cookies["User"] == null)
    {
        //Create cookie
        return RedirectToAction("MyPage", "Home");
    }
    else
    {
        string User = HttpContext.Request.Cookies["User"].Value;
        foreach (var user in Data.MyUsers)
        {
            if (user.username == User)
            {
                //Do some stuff
                return View("MyPage");
            }
        }
        HttpContext.Request.Cookies.Remove("User");
        //HttpContext.Response.Cookies.Remove("User"); works not sorry ;(
        return RedirectToAction("MyPage", "Home");
    }
}

问题:应用程序不会删除cookie(为什么会这样)并在循环中运行,因为应用程序在数据中找不到用户。 (问题不是应用程序找不到用户,问题是cookie问题)

问题:我如何解决这个问题,因为在我的另一个项目中,我的工作正常。我在我的新项目中复制并粘贴了我的其他项目中的代码,但在新项目中它不起作用。是的我使用相同版本的asp.net框架:)

希望你能帮助我......我已经知道了关于c#....

的结论

非常感谢。

2 个答案:

答案 0 :(得分:3)

使用过期属性,并为其设置负值,这将使cookie过期,即在您的单词中,这将从cookie列表中删除。

String cookieName = Request.Cookies["User"].Name;
HttpCookie userCookie = new HttpCookie(cookieName);
userCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(userCookie);

答案 1 :(得分:-1)

您无法删除客户端上的Cookie,但您可以过期

https://msdn.microsoft.com/en-us/library/ms178195.aspx