如何使用ASP.NETMVC 3和c#清除cookie?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

好的,所以我真的认为我这样做是正确的,但Cookie没有被清除。

 Session.Clear();
 HttpCookie c = Request.Cookies["MyCookie"];
 if (c != null)
 {
     c = new HttpCookie("MyCookie");
     c["AT"] = null;
     c.Expires = DateTime.Now.AddDays(-1);
     Request.Cookies.Add(c);
 }

 return RedirectToAction("Index", "Home");

当重定向发生时,它会再次找到cookie并继续前进,就好像我从未注销过一样。有什么想法吗?

提问于
用户回答回答于

你很近。需要使用Response对象回写到浏览器:

if ( Request.Cookies["MyCookie"] != null )
{
    var c = new HttpCookie( "MyCookie" );
    c.Expires = DateTime.Now.AddDays( -1 );
    Response.Cookies.Add( c );
}

有关MSDN的更多信息,如何删除Cookie

用户回答回答于

Cookies存储在客户端,而不是服务器上,所以Session.Clear不会影响它们。此外,Request.Cookies由IIS填充,并在每次请求页面时将其提供给页面; 添加/删除该集合中的一个cookie什么也不做。

尝试对Response.Cookies执行类似的操作。这会导致你的客户用新的cookie覆盖旧的cookie,导致它过期。

扫码关注云+社区