我觉得我被饼干怪物吃掉了。我删除了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代码,它们已经回来了......就像糟糕的便士一样。
答案 0 :(得分:1)
您编写的代码指示.Net创建新的HttpCookie,而不是创建“仅在不存在时”。 在MSDN页面上有一个例子: http://msdn.microsoft.com/en-us/library/system.web.httpcookie.aspx
答案 1 :(得分:0)
Response.Cookies.Remove(name)
怎么样?