HttpCookie Expires和IIS设置

时间:2013-08-12 15:28:18

标签: iis cookies iis-7.5 setcookie httpcookie

我对Cookie Expire日期感到疯狂,概念上它很简单,但它不能在我的服务器上工作......我猜这是一个让我疯狂的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后工作正常....如果我在服务器上运行我总是找不到Cookie .... 如果我发表评论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集合.... 任何建议都将受到高度赞赏....

1 个答案:

答案 0 :(得分:1)

抱歉,我发现问题是什么....服务器在响应日期返回错误的日期.... 到期日必须在响应日期之后将cookie添加到cookie集合中。