我使用nopCommerce平台开发了一个ASP.NET MVC网站。生产服务器上的一切正常,但我最近在开发服务器上遇到了有关cookie的问题。浏览器接收cookie,但不会设置它。我可以使用浏览器开发人员工具在标题或Cookie选项卡中的实际cookie中看到Set-Cookie语句。为什么浏览器没有设置此cookie?
Set-Cookie:Pentrugatit.client=78deb2e0-59fb-4193-a53e-da35377ece8b; expires=Fri, 19-Jun-2015 19:33:10 GMT; path=/; HttpOnly
只要我的开发服务器已开启,您就可以访问网站here。
更新
我还从网络中的另一台计算机上测试过。发生同样的事情。未设置cookie,尽管响应标头中已收到它们。
更新2:
它与过期日期有关。如果我删除cookie的expires属性,那么它会成功设置为会话cookie。但我不明白问题是什么。我的系统日期设置正确,并根据specifications正确设置了Cookie到期日期。
任何想法可能是什么问题?
答案 0 :(得分:2)
您使用的是哪种版本的nopCommerce?
nopCommerce有一个 browserCaps 功能,可阻止未知浏览器(后来被视为机器人)存储cookie。如果浏览器版本确实通过了browserCaps中的规则,那么旧的 browserCaps 会错误地将有效的浏览器识别为机器人。
该文件位于: Presentation \ Nop.Web \ browserCaps.config 下。如果您使用的是旧版本的nopCommerce,则只需复制同一文件的最新版本(nopCommerce 3.30)即可替换当前版本。
:)
更新2014-06-24:
经过一些分析,结果证明IIS返回的日期是错误的。类似问题:https://serverfault.com/questions/217343/date-header-returned-by-iis7-is-wrong