【发布时间】:2012-09-04 18:57:52
【问题描述】:
我工作的网站由多个项目组成(以多种语言编写)。现在我们必须在查询字符串和会话变量中使用一些笨拙的代码来让人们在从一个项目到另一个项目时保持登录状态。由于 cookie 是特定于域的,我们正在尝试将其转换为它们,因为它们可以使用一种语言在一个项目中设置,但可以由使用不同语言的不同项目(在同一域上)访问。
但是,我在更改 cookie 的值和删除它们时遇到了问题。或者更具体地说,我无法对 cookie 棒进行任何更改。
例如在我的注销代码中:
if (Request.Cookies["thisuserlogin"] != null)
{
HttpCookie myCookie = new HttpCookie("thisuserlogin");
myCookie.Value = String.Empty;
myCookie.Expires = DateTime.Now.AddDays(-1d);
Response.Cookies.Add(myCookie);
Response.Cookies.Set(myCookie);
litTest.Text = myCookie.Expires.ToString() + "<br />" + Request.Cookies["thisuserlogin"].Expires.ToString();
}
最后一行是昨天,下一行是 1/1/0001 12:00:00,即使它们应该是同一个 cookie。那么为什么即使设置了cookie,它的值也没有改变呢?有没有办法强制用户的计算机更新 cookie 的值,包括删除?
非常感谢。 PS 您可以提供任何 URL 以提供易于理解的 cookie 入门,我们将不胜感激。
【问题讨论】:
-
我编辑了标题,因为 cookie 不是 C# 特定的。 ASP.NET 更合适。