【发布时间】:2014-01-30 22:07:08
【问题描述】:
我对测试平台页面做了一些更改,所以我可以在这里更清楚地说明我的问题。
页面有三个按钮:设置;清除;和得到。
设置有这个代码:
PreferredCookie = new HttpCookie("PreferredCookie");
PreferredCookie.Value = "Chocolate Chip";
DateTime exp = DateTime.Now.AddDays(1.0d);
PreferredCookie.Expires = exp;
Response.Cookies.Set(PreferredCookie);
清除有这个:
HttpCookie PreferredCookie = Request.Cookies["PreferredCookie"];
if (PreferredCookie != null)
{
PreferredCookie.Value = "";
PreferredCookie.Expires = DateTime.Now;
Response.Cookies.Set(PreferredCookie);
}
Get 有这个,它输出到 asp:Literal:
HttpCookie PreferredCookie = Request.Cookies["PreferredCookie"];
if (PreferredCookie != null)
{
CookieLiteral.Text = "Value = " + PreferredCookie.Value + "<br>";
CookieLiteral.Text += "Expires = " + PreferredCookie.Expires.ToString("MM/dd/yyyy HH:mm:ss");
}
else
{
CookieLiteral.Text = "<h2>No Cookie?</h2>";
}
如果我启动页面并单击清除,然后使用 Get 进行后续操作,我会看到:
没有 Cookie?
如果我然后单击 Set,然后单击 Get,我看到了:
价值 = 巧克力片
过期 = 01/01/0001 00:00:00
这个日期似乎被视为永不过期。如果我使用 Firefox 访问该页面,我会得到相同的结果。
【问题讨论】:
-
这是您项目中唯一设置 cookie 的地方吗?
-
是的,@MikeSmithDev。这是一个测试平台项目,仅用于尝试 cookie 处理。
-
您如何确定 cookie 存在并且过期日期是从第 1 年开始?
-
@MikeSmithDev 我修改了问题以使其更清晰(我希望)并显示所有代码。