【发布时间】: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