【问题标题】:Can't remove cookie无法删除 cookie
【发布时间】:2019-02-12 04:58:58
【问题描述】:

我看到我在使用 HttpContext.Request 的 remove 方法后立即在调试中删除了 cookie,但是当我重定向到另一个操作时,我仍然可以获得 cookie 值。为什么会这样?

public class LoginController : Controller
{

  public ActionResult Logout()
  {       
   HttpContext.Request.Cookies.Remove(Constants.User);     

   //I see that HttpContext.Request.Cookies[Constants.User] returns null in this line.

   return RedirectToAction("Login", "Login");
  }

  public ActionResult Login()
  {
    var userCookie = HttpContext.Request.Cookies[Constants.User];

    // But HttpContext.Request.Cookies[Constants.User] is not null here. I get the value from it.

    if (userCookie != null)
      return RedirectToAction(Constants.MainPage, Constants.MainPage);
    else
      return View();
  }
}

【问题讨论】:

    标签: c# asp.net-mvc cookies


    【解决方案1】:

    要删除 cookie,您必须将过期日期设置为现在或以前的日期。使用HttpContext.Request.Cookies.Remove(Constants.User); 删除它只是将它从集合中删除,但它仍然存在于客户端浏览器中。

    例如不使用Remove函数使用:

        Response.Cookies[Constants.User].Expires = DateTime.Now.AddDays(-1);   
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-20
      • 2012-07-06
      • 2019-11-13
      • 1970-01-01
      • 2016-12-31
      • 2012-10-20
      • 2020-05-22
      • 1970-01-01
      相关资源
      最近更新 更多