ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
2013-02-15 14:43
1021 查看
今天发现在IE10中登录我公司的一个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没问题,但使用表单验证机制(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>
设定完成,问题即可解决
后查实这是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>
设定完成,问题即可解决
您可能感兴趣的文章:
- asp.net(C#)清除全部Session与单个Session的方法
- C#程序中session值的保存方法以及转为字符串的方法总结
- C#程序中session的基本设置示例及清除session的方法
- ASP.NET在底层类库中获取Session C#类中获取Session
- C#实现简单获取及设置Session类
- C#操作session的类实例
- asp.net(c#)有关 Session 操作的几个误区
- IIS服务器中 ASP.NET State Service 开启后 Session 仍容易丢失的问题终极解决办法
- asp.net删除文件session丢失
- C# SESSION丢失问题的解决办法
相关文章推荐
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET在IE10中无法判断用户已登入及Session丢失问题解决方法
- ASP.NET Session丢失问题 表单验证机制(FormsAuthentication)却无法判断该用户已登入
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- 解决ASP.NET在IE10中Session丢失问题
- 解决ASP.NET在IE10中Session丢失问题
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期
- 工作中的问题解决 -- (win2003 asp.net) Session和带页面回传的方法无法正常使用解决方案
- 在ASP.NET中怎么用SESSION判断用户是否登录? 以及Session登陆后丢失的解决办法
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期【转载】
- 用ASP.NET解决用户意外退出在线列表无法及时更新问题的方法
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期
- ASP.NET Session丢失问题解决方案总结及判断Session是否过期【转载】
- 解决ASP.NET在IE10中Session丢失问题【转】
- 解决IE10中ASP.NET中Cookie或Session丢失问题