在我的网站上,我以这种方式返回一个cookie:
context.Response.Cookies.Add(new HttpCookie("MYCOOKIE", MyStringVar)
{
HttpOnly = false,
Expires = DateTime.Now.Add(GlobalSettings.AuthCookieDuration)
});
在开发过程中,一切都适用于所有浏览器,但是当我将应用程序部署到服务器时,只有Firefox能够登录(因此它是唯一接受cookie的人)。在服务器中,应用程序在服务器的根目录上运行,没有虚拟路径。
可能是什么问题?
非常感谢。
编辑:
我看着Fiddler的机智,服务器正在返回cookie,毫无疑问。所以问题是Chrome和IE不接受它。
答案 0 :(得分:1)
问题是,服务器的GMT时间错误,所以它发送回已经过时的cookie,当然浏览器正在丢弃它:P
今天是格林威治标准时间2011年1月28日星期五12:50,服务器从昨天开始返回!!
HTTP/1.1 302 Found
Date: Thu, 27 Jan 2011 23:12:15 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 4.0.30319
p3p: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Location: http://myserver
Set-Cookie: AUTH=jll+9[...]; expires=Thu, 27-Jan-2011 23:32:15 GMT; path=/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 166
快乐的日子:)
Fiddler是一个很棒的工具;)