我们有一个在.NET 3.5上运行的ASP.NET应用程序,并且遇到了在IE9上没有设置表单身份验证cookie的问题。我们可以在HTTP标头中看到响应中存在Set-Cookie
标头,但以下请求不包含该cookie。
我已尝试更改IE中可能找到的与Cookie有关的所有设置,但没有任何帮助。具体做法是:
工具>选项>安全>可信站点>加入..
工具>选项>安全>取消选中“启用保护模式”
工具>选项>隐私>接受所有Cookie(最低)
工具>选项>隐私>网站>加入..
工具>选项>隐私>高级>覆盖自动..
工具>选项>隐私>高级>始终允许会话cookie
这是带有cookie的响应的标题,后跟下一个不包含它的请求:
HTTP/1.1 302 Found
Date: Sun, 29 Jan 2012 01:45:17 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
Location: /Default.aspx
Set-Cookie: MyApp=34C244EF0AAD...; expires=Sun, 29-Jan-2012 03:45:17 GMT; path=/
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Length: 8520
GET /Default.aspx HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://app.myserver.edu/sec/login.aspx
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; MALC)
UA-CPU: AMD64
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
Host: app.myserver.edu
Pragma: no-cache
Cookie: ASP.NET_SessionId=nybswv45aezj5wioscv832jg
有没有办法找出为什么IE9没有设置cookie?我可以在我的Web.config中调整哪些会影响这个?我的身份验证部分是:
<authentication mode="Forms">
<forms name="MyApp" loginUrl="/sec/login.aspx"/>
</authentication>
答案 0 :(得分:2)
修复服务器时钟解决了问题。谢谢西蒙!
答案 1 :(得分:0)
如果要在IFRAME中加载ASP.NET网站,则需要包含P3P标头。见Cookie blocked/not saved in IFRAME in Internet Explorer
我相信您的网站正在使用Chrome,Firefox等,因为您特别提到了IE9。