今天发现猎豹浏览器的一个大坑 Request.IsAuthenticated 一直为 false;另外附加原因以及临时的解决方法
今天掉到了一个大坑里面,爬了1个多小时才发现不是代码的问题,居然是浏览器的问题… 下面是问题的发生过程
单点登陆 有2个站点 http://a.abc.com http://b.abc.com
登陆后从a跳转到b,结果在b网站能获取到在a站点登陆的cookie的值,但是 b站点里面判断是否登陆用的 Request.IsAuthenticated 的值一直是false,也就是表示在B站点,是没有登陆的.
调试了1个多小时,能想到的单点登陆的问题都想到了,还是不行.
后面用同事的电脑调试了一下,他的就是正常的 Request.IsAuthenticated 为true, 一看他的浏览器是火狐
于是我也用火狐,IE9, 360(极速和IE模式)都测试了一下,结果都是正常的为true ,如下图所示
就只有这坑爹的猎豹浏览器返回的是个false
无力吐槽…1个多小时啊,居然是因为浏览器的问题 我记得以前用腾讯的TT浏览器也有一个 javascript的坑……
PS:在我昨天下午跑到猎豹论坛提交了以上的bug之后,猎豹的工程师今天早上主动联系了我,并且和我分析了错误产生的大概原因,以及临时的解决方法,听我一一道来
产生原因:因为我是单点登陆,也就是在A网登陆之后,是要跳转到B网站的,在这跳转的过程中,可能发生了 核心的切换 ,比如你浏览器设置的是IE模式,那么可能从IE兼容模式,切换到了 极速模式,然后又从极速模式,切换到了IE模式这样,于是cookie就这么丢了(但是为嘛又能读取到cookie的值呢?).于是 Request.IsAuthenticated 就是false了
临时解决方法:找到桌面的猎豹浏览器,右键属性,我们发现默认的是如下所示
猎豹的工程师,让我将最后的几个文字修改成如下所示 --dflag=1 表示锁定浏览器为IE兼容模式 --dflag=2 表示锁定浏览器为 极速模式
我现在先设置为IE兼容模式,然后继续调试一下我昨天的站点,发现数据居然正常了.
然后我设置为 –dflag=2 锁定浏览器为极速模式,也正常. 但是在锁定为极速模式的时候,浏览器的提示还是为IE兼容模式
猎豹的工程师讲,当我们手动在猎豹的快捷后面加参数调试,用参数锁定后 显示的内容就不准了
ok 到此为止,算是有了临时的解决方案了. 速度还是蛮快的,昨天提交,今天就解答了,很满意.顺便我也提了一下我的另外一个建议,当用猎豹浏览器添加收藏的时候,那个弹出来的方框真的是小啊,如果像我这样有几十个收藏夹的,就真的觉得很麻烦.
工程师说会反馈上去,期待下一个版本的更新.
今天发现猎豹浏览器的一个大坑 Request.IsAuthenticated 一直为 false;另外附加原因以及临时的解决方法的更多相关文章
- URL传递中文参数,大坑一枚,Windows与Linux效果竟然不一致(两种解决方法)
下午,计划2个小时搞定,个人官网第6次升级,就可以干点轻松的事了,结果,下午多搞了2个小时,晚上又搞了2个小时,才搞定. 最后一个世界难题是,URL传递中文参数. 问题大致是这么出现的:我为" ...
- 使用TarOutputStream出现 request to write '1024' bytes exceeds size in header错误的解决方法
因为测试流程中,所测客户端会根据服务器A返回的response决定发送给服务器B的请求里各参数的值,所以现在需要模拟服务器的响应.而这个项目服务器A的响应式返回一个流,一个GZIP压缩格式流,压缩的是 ...
- 关于 客户端发现响应内容类型为“text/html; charset=utf-8”,但应为“text/xml”的解决方法
http://www.cnblogs.com/jams742003/archive/2008/10/30/1322761.html 请求web服务时,会有如题的异常出现,解决方法如下: 1 检查web ...
- 小程序发送 request请求失败 提示不在合法域名列表中的解决方法
可以在小程序开发工具中设置不校验域名.
- Request.IsAuthenticated
Original question that the answer below refers to: I have a forms based application that is giving m ...
- How does Request.IsAuthenticated work?
How does Request.IsAuthenticated work? MSDN Code Sample Description: The following code example uses ...
- MVC Request.IsAuthenticated一直false Request.Cookie获取不到cookie
项目中,在做登录验证时,用到了cookie,同一账户登陆,可以.切换其他账号时,就在也登录不上了,用原来的也不行.检查Request.IsAuthenticated一直false,而且Request. ...
- ambari关于ranger的一个大坑----端口永远是3306,需要手动修改
ambari关于ranger的一个大坑----端口永远是3306 这个坑是我在搭建ambari环境的时候发现的,我并没有找到原因,求助同事,然后一步步循着蛛丝马迹和试探,终于解决了,然而也揭露了amb ...
- 我靠!Semaphore里面居然有这么一个大坑!
这是why的第 59 篇原创文章 荒腔走板 大家好,我是why哥 ,欢迎来到我连续周更优质原创文章的第 59 篇. 上周写了一篇文章,一不小心戳到了大家的爽点,其中一个转载我文章的大号,阅读量居然突破 ...
随机推荐
- BeanUtils No value specified for Date的解决方法
/** * ConversionException: No value specified for Date的解决方法 */ ConvertUtils.register(new DateConvert ...
- linux gcc++漏洞:普通用户获得root权限
linux gcc++漏洞:普通用户获得root权限 2012-02-06 10:22:38| 分类: linux安全|举报|字号 订阅 经我测试在RHEL5 / CentOS5 / F ...
- Lucene教程--转载
Lucene教程 1 lucene简介1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...
- hdu 3886 Final Kichiku “Lanlanshu” 数位DP
思路: dp[i][j][k]:满足在字符串的j位,前一位数字是k. 代码如下: #include<iostream> #include<cstdio> #include< ...
- poj 1678 I Love this Game!
思路:这题和博弈论的关系不大,主要是DP.记忆化搜索即可!!! 取的数一定是大于0的,所以将负数去掉!! 代码如下: #include<iostream> #include<cstd ...
- mmap 的理解
mmap 的理解 采用共享内存通信的一个显而易见的好处 是效率高,因为进程可以直接读写内存,而不需要任何数据的拷贝.对于像管道和消息队列等通信方式,则需要在内核和用户空间进行四次的数据拷贝,而共享内存 ...
- VCL里为什么要用类函数代替API,为什么要用CM_消息代替虚函数
之所以要用类函数代替API,是因为VCL对它做了一些包装,好在API起作用之前和之后做一些额外的事情:通知和判断等等.之所以类函数要包装一个CM_消息,是因为这样方便程序员(在调用类函数的基础上)截断 ...
- 嵌入式linux的学习之路[转]
我认为的一条学习嵌入式Linux的路: 1)学习 Linux系统安装. 常用命令.应用程序安装. 2) 学习 Linux 下的 C 编程.这本书必学<UNIX 环境高级编程>.<UN ...
- [转]ArcGIS计算图斑的四邻坐标(XMin,XMax,YMin,YMax)
1.背景: 在国土,调查等行业业务里面经常有需要计算某个图斑的四邻坐标,即xmax,xmin,ymin,ymax;也就是常说的MBR(最小外包矩形),本教程演示如何计算一个shapefile文件上的图 ...
- How to configure Spring facet in IntelliJ IDEA
遇到了这个问题,稀里糊涂的就给搞定了,在stackoverfolw上看到了相同的问题,直接拷贝下来吧 Spring Configuration Check Unmapped Spring config ...