我有一个我使用java脚本设置的cookie然后我尝试使用ASP.NET使用它后使其过期 我使用firefox检查了cookie它显示它的到期日期设置为会话虽然我设置了到期日期,如下所示 我尝试删除没有用的cookie,但仍然使用相同的状态创建并且没有看到想要过期的
java脚本
function dateSelected(sender, eventArg) {
var expire = new Date();
expire.setDate(expire.getTime() + (5 * 24 * 60 * 60 * 1000));
var element = sender._clientStateFieldID;
if (element == "txtenddate_ClientState")
document.cookie = "EndDate=" + eventArg.get_newValue() + ";expires=" + expire.toUTCString() + ";path=/";
else
document.cookie = "StartDate=" + eventArg.get_newValue() + ";expires=" + expire.toUTCString() + ";path=/";
}
ASP.NET C#
StringBuilder url = new StringBuilder();
url.Append("&StartDate=");
url.Append(Request.Cookies["StartDate"].Value);
url.Append("&EndDate=");
url.Append(Request.Cookies["EndDate"].Value);
Request.Cookies["StartDate"].Expires = DateTime.Now.AddDays(-1d);
Request.Cookies["EndDate"].Expires = DateTime.Now.AddDays(-1d);
Request.Cookies.Add(Request.Cookies["EndDate"]);
Request.Cookies.Add(Request.Cookies["StartDate"]);
Server.Transfer(url.ToString());
答案 0 :(得分:0)
虽然我没有解释为什么将cookie到期日期设置为会话,尽管我明确地将其设置为特定日期 通过调整两个添加行来解决实际问题,使用Response而不是像Andrew建议的那样使用Request集合
Response.Cookies.Add(Request.Cookies["EndDate"]);
Response.Cookies.Add(Request.Cookies["StartDate"]);