【问题标题】:Cookie Doesn't want to expire ASP.NETCookie 不想让 ASP.NET 过期
【发布时间】:2015-09-22 14:08:01
【问题描述】:

我有一个使用 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());

【问题讨论】:

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

标签: javascript c# asp.net cookies


【解决方案1】:

虽然我没有解释为什么将 cookie 到期日期设置为会话,尽管我明确将其设置为特定日期 实际问题已通过调整两个添加行以使用 Response 而不是 Request 集合来解决,就像 Andrew 建议的那样

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

【讨论】:

    猜你喜欢
    • 2014-10-07
    • 2016-11-08
    • 2017-09-26
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多