问题描述,首先项目都是同一个。部署在A服务器和B服务器。A服务器正常。B服务器出现问题:
登录页面登录=>登录后跳转主页 这个过程中,登录成功向客户端写入身份验证cookies,跳转到主页的时候 再次验证cookies无法通过验证。
问题流程:
正常服务器:
登录=> respose 里面有cookie
跳转=>request 里面有登录时候服务器发给客户端的cookie
服务器验证cookie 通过!ie 和谷歌浏览器都能正常使用
异常服务器:(异常服务器使用ie浏览器访问可正常使用)
问题来了!使用谷歌浏览器:
登录=>
跳转到主页=>
可以看到使用谷歌浏览器登录的时候服务器通过验证 并将身份cookie写入到客户端,但是跳转到主页的时候谷歌没有将身份cookie回发给服务器,导致跳转主页cookie验证身份失败。
会不会是服务器和谷歌浏览器同时有问题,如果单是浏览器为什么我部署在别的服务器就没问题,如果是服务器。为什么我用ie 和火狐浏览器就能正常登录。
是不是应用程序池名称是不是同一个?发生了冲突?
检查了下 不是的。
你是两台服务器做的负载么?如果是的话 要在webconfig 里面设置下machinekey相同应该就好了。
不是的。我试了下把machinekey 配置成一样的 也没效果。
应该是chrome的cookie权限设置问题吧,看看浏览器设置里是不是设置了cookie权限。
看起chrome的登录前后cookie没有变化。
AspxAutoDetectCookieSupport=1这个好像就是检测是否支持cookie的吧?
登录成功,服务器想浏览器写入cookie成功,重定向到另外一个页面的时候浏览器没有将cookie回传给服务器。
@困住我的你的床: 我觉得这样的情况更多出现在两ip在浏览器的安全级别不一致。
比较常见的是IE里一个在可信站点一个不在可信站点。
cookie大小是多少?是不是超过大小上限导致chrome写入失败了。
还有你这个cookie是否是第三方cookie?
@Blackheart: 不是,我把项目部署在其他服务器,用谷歌浏览器就没问题。cookie大小一样。
@困住我的你的床: 感觉还是chrome没能正确写入cookie导致的,你再加随便加一个cookie,看看是否能够写入并携带过去呢?
@困住我的你的床: 你的另外一个服务器,谷歌能正常访问的时候,set-cookie的那个response有没有transfer-encoding:chunked的header?可能是它造成的chrome没有正确写入cookie。
set-cookie不成功的请求的host是 10.1.0.16:8059, 成功的端口号是888, 没写入cookie的原因应该是由跨域造成的
不好意思,截图的时候换了个端口,项目没变。
@困住我的你的床: 在chrome里清空此域名下的所有cookie,然后重新走一遍登录,看哪些cookie设成功了,哪些没有成功;对比domain, path, expires, secure等值的区别;
最后到底是怎么解决的?我也遇到了这样的问题,完全不知所措
【问题描述】https://blog.csdn.net/qidizi/article/details/44304481
【解决方案】https://serverfault.com/questions/217343/date-header-returned-by-iis7-is-wrong
仅供参考,谢谢。
【问题描述】https://blog.csdn.net/qidizi/article/details/44304481
【解决方案】https://serverfault.com/questions/217343/date-header-returned-by-iis7-is-wrong
仅供参考,谢谢。