Cookie不想使ASP.NET过期

时间:2015-09-22 14:08:01

标签: javascript c# asp.net cookies

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

1 个答案:

答案 0 :(得分:0)

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

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