我有一个云网站(Azure网站),它从cookie中读取一些数据以跟踪用户活动。
突然间我的SignOut方法无效,我无法弄清楚原因。我正在按照建议的程序清除cookie。
这是发生的事情
用户点击退出:
public void SignOut()
{
var httpCookie = Request.Cookies["cookiename"];
if (httpCookie != null)
{
httpCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(httpCookie);
}
Response.Redirect("/");
}
检查Response.Cookies.Add
变量httpCookie
时的Cookie确实显示了今天前一天的日期。
当我点击Response.Redirect
后返回主页时,cookie与之前的相同:
var httpCookie = Request.Cookies["cookiename"];
if (httpCookie != null)
{
//pick up where we left off
}
不允许我的用户退出是有点沮丧。一切看起来都很棒,那么我在哪里可以找到错误?
更新
Response.Cookies.Add
方法似乎马上就失败了。如果我将其更改为:
public void SignOut()
{
var httpCookie = Request.Cookies["cookiename"];
if (httpCookie != null)
{
var deadCookie = new HttpCookie("cookiename");
deadCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(deadCookie);
var httpCookie2 = Request.Cookies["cookiename"];
}
Response.Redirect("/");
}
httpCookie2
的值仍然是错误的。不知道这是否有帮助/