【问题标题】:HttpCookie Expires and IIS settingHttpCookie 过期和 IIS 设置
【发布时间】:2013-08-13 23:52:52
【问题描述】:

我对 Cookie 过期日期感到很疯狂,从概念上讲它很简单,但它在我的服务器上不起作用......我想这是一个让我发疯的 IIS 设置,你怎么看????

我从一个 MVC 3 示例项目开始,我在 Home Controller 中添加以下代码

  public ActionResult Index()
    {
         var PersistentLogonCookieName = "test";
        var persistentLogon = DateTime.Now.ToLongTimeString(); 
         var persistentLogonCookie = new HttpCookie(PersistentLogonCookieName, persistentLogon);
           persistentLogonCookie.Expires = DateTime.UtcNow.AddDays(2);


        if (Request.Cookies[PersistentLogonCookieName] == null)
        {
            ViewBag.Message = "Cookie NOT Found!";

             persistentLogonCookie.Value = "added" + DateTime.Now.ToLongTimeString();
            Response.Cookies.Add(persistentLogonCookie);
        }
        else
        {
            ViewBag.Message = "Cookie Found!";

            Response.SetCookie(persistentLogonCookie);
        }
        return View();
    }

如果我在本地运行它,它会在第二个请求后正常工作,我得到 Cookie Found....如果我在服务器上运行,我总是 Cookie Not Found.... 如果我评论 persistentLogonCookie.Expires = DateTime.UtcNow.AddDays(2); 它在服务器上也可以正常工作。 如果不是我的本地计算机和服务器之间的 IIS 设置不同,我不知道该怎么想...... 在响应头中我有:

Set-Cookie  test=added4:23:39 PM; expires=Wed, 14-Aug-2013 15:23:39 GMT; path=/

但是当我在服务器上测试它时,cookie 没有添加到以下请求的 cookie 集合中,当我使用本地 IIS 进行测试时,它会进入 cookie 集合中...... 任何建议将不胜感激......

【问题讨论】:

  • 抱歉,我发现了问题所在......服务器在响应日期中返回了错误的日期......

标签: iis cookies iis-7.5 setcookie httpcookie


【解决方案1】:

抱歉,我发现问题出在哪里......服务器在响应日期中返回了错误的日期...... 到期日期必须在响应日期之后才能将 cookie 添加到 cookie 集合中。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 2017-10-19
  • 2016-12-23
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多