Cookie不希望ASP.NET过期

Cookie Doesn't want to expire ASP.NET

本文关键字:NET 过期 ASP 希望 Cookie      更新时间:2023-09-26

我有一个cookie,我使用java脚本设置,然后我试图使它过期后使用它使用ASP。网我用firefox检查了cookie,它显示它的过期日期被设置为session,尽管我设置了过期日期,你可以在下面看到我试过删除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。净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());

尽管我明确地将其设置为特定日期,但我没有解释为什么cookie过期日期设置为session正如Andrew建议的那样,通过调整两个add行来使用Response而不是Request集合,实际问题得到了解决。

 Response.Cookies.Add(Request.Cookies["EndDate"]);
 Response.Cookies.Add(Request.Cookies["StartDate"]);