解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
来源:互联网 发布:mac没有insert怎么办 编辑:程序博客网 时间:2024/05/21 09:43
今天给客户部署项目,和前两天完全一样的环境,不论是服务器环境还是本地环境完全一样,可是这次发布后用IE11怎么登录都会跳回登录页面,用火狐或者谷歌浏览器没有任何问题,这着实让我郁闷坏了。项目里的登录完成后会做一次跳转,跳转后的页面继承了一个页面基类,在基类中验证表单内容,验证失败即跳回登录页面。郁闷许久后最终找到了解决方案及原理,转载如下:
IE10中Session丢失问题引起众多业内人士的关注,今天发现在IE10中登录网站时,使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失,本文将介绍解决方法,感兴趣的朋友可以参考下,或许对你有所帮助
后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因这些版本无法识别IE10的User-Agent标头字符串,所以无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不处理与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等.
这个问题早经微软官方确认,是IE10的一个Bug,也发布了两个HOTFIX专门用来修复这个问题,各位如遇到同样的问题,可参考以下说明:
KB2600088: Hotfix 适用在 Microsoft.NET Framework 4.0 中的 ASP.NET [英文]
KB2608565: Hotfix 适用在 .NET Framework 3.5.1 中的 ASP.NET [英文]
KB2600100: Hotfix 适用在 .NET Framework 3.5 SP1 与 .NET Framework 2.0 SP2 中的 ASP.NET
简单的解决方法是,在网站根目录,新增一个浏览器定义文件(browser definition file)
步骤如下:
1.添加一个"App_Browsers"文件夹
2.添加一个"*.browser"后缀的文件,如IE10.browser.
3.添加文件内容如下:
- <browsers>
- <browser refID="Default">
- <capabilities><!-- To avoid wrong detections of e.g. IE10 -->
- <capability name="cookies" value="true" />
- <capability name="ecmascriptversion" value="3.0" />
- </capabilities>
- </browser>
- </browsers>
0 0
- 解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
- 解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
- 解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
- 解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
- IE10 浏览器无法验证.Net表单登陆问题
- 解決 IE10 无法使用 ASP.NET Forms登录的問題
- ASP.NET使用表单验证在注销后使得浏览器后退按钮失效的简单方法
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
- asp.net使用ODP的防注入登录验证程序
- asp.net 表单验证
- ASP.NET表单验证
- IE10 无法打开的问题
- ASP.net进行表单验证的过程
- ASP.NET 登录验证
- asp.net的登录验证方法
- ASP.NET"无法验证数据"的解决方法
- win7浏览器IE9升级到IE10后无法启动的问题
- Android拍照或本地图片上传
- IOS自动化打包介绍及脚本
- 浙江一副局长上班时裸泳 被纪委现场抓个正着
- Android 中蓝牙Profile与UUID
- iOS应用崩溃日志分析
- 解決 IE10 浏览器无法使用 ASP.NET 表单验证登录的问题
- easyUI的table表格怎么实现将某一列数据之和放入新追加的一行中
- 正则表达式之捕获型分组与非捕获型分组
- Android编译系统
- android R资源文件出错
- 2015第一篇博客,从MD5开始
- 【黑马程序员】----Java 基础之 IO流__字符流
- java null和isEmpty()和“”的区别
- IOS添加自定义字体 [UIFont fontWithName: size:]