我对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集合.... 任何建议都将受到高度赞赏....
答案 0 :(得分:1)
抱歉,我发现问题是什么....服务器在响应日期返回错误的日期.... 到期日必须在响应日期之后将cookie添加到cookie集合中。