今天发现猎豹浏览器的一个大坑 Request.IsAuthenticated 一直为 false;另外附加原因以及临时的解决方法

今天掉到了一个大坑里面,爬了1个多小时才发现不是代码的问题,居然是浏览器的问题… 下面是问题的发生过程

单点登陆  有2个站点  http://a.abc.com  http://b.abc.com

登陆后从a跳转到b,结果在b网站能获取到在a站点登陆的cookie的值,但是 b站点里面判断是否登陆用的 Request.IsAuthenticated 的值一直是false,也就是表示在B站点,是没有登陆的.

image

调试了1个多小时,能想到的单点登陆的问题都想到了,还是不行.

后面用同事的电脑调试了一下,他的就是正常的 Request.IsAuthenticated 为true, 一看他的浏览器是火狐

于是我也用火狐,IE9, 360(极速和IE模式)都测试了一下,结果都是正常的为true ,如下图所示

image

就只有这坑爹的猎豹浏览器返回的是个false

无力吐槽…1个多小时啊,居然是因为浏览器的问题   我记得以前用腾讯的TT浏览器也有一个 javascript的坑……

PS:在我昨天下午跑到猎豹论坛提交了以上的bug之后,猎豹的工程师今天早上主动联系了我,并且和我分析了错误产生的大概原因,以及临时的解决方法,听我一一道来

产生原因:因为我是单点登陆,也就是在A网登陆之后,是要跳转到B网站的,在这跳转的过程中,可能发生了 核心的切换 ,比如你浏览器设置的是IE模式,那么可能从IE兼容模式,切换到了 极速模式,然后又从极速模式,切换到了IE模式这样,于是cookie就这么丢了(但是为嘛又能读取到cookie的值呢?).于是 Request.IsAuthenticated 就是false了

临时解决方法:找到桌面的猎豹浏览器,右键属性,我们发现默认的是如下所示

)[4P$S8Q%@SCGDJ89{`OXCI

猎豹的工程师,让我将最后的几个文字修改成如下所示   --dflag=1 表示锁定浏览器为IE兼容模式    --dflag=2 表示锁定浏览器为 极速模式

WZAWLDBU1S@WS`F5T[I2$$L

我现在先设置为IE兼容模式,然后继续调试一下我昨天的站点,F{G5CWBJITXM@92MG_}JGXG发现数据居然正常了.

]ESB8K8C@)PP1RUZ2${5ZBL

然后我设置为 –dflag=2 锁定浏览器为极速模式,也正常. 但是在锁定为极速模式的时候,浏览器的提示还是为IE兼容模式

image

猎豹的工程师讲,当我们手动在猎豹的快捷后面加参数调试,用参数锁定后  显示的内容就不准了

ok 到此为止,算是有了临时的解决方案了. 速度还是蛮快的,昨天提交,今天就解答了,很满意.顺便我也提了一下我的另外一个建议,当用猎豹浏览器添加收藏的时候,那个弹出来的方框真的是小啊,如果像我这样有几十个收藏夹的,就真的觉得很麻烦.

image

工程师说会反馈上去,期待下一个版本的更新.

原文地址:https://www.cnblogs.com/joeylee/p/3636268.html