asp.net IE10 下的bug

  • 时间:
  • 浏览:3

1. 先在專案目錄或正式機網站跟目錄下新增一個 App_Browsers 資料夾

4

今天发现在IE10中登录我公司的3个网站时,点击其它菜单,页面总会自动重新退出到登录页,后检查发现,IE10送出的HTTP头,和.AUTH Cookie都没大疑问,但使用表单验证机制(FormsAuthentication)却无法判断该用户已登入,保存的Session总会丢失.

后查实这是ASP.NET 2.0,3.5和4.0的Bugs,因那此版本无法识别IE10的User-Agent标头字符串,什么都有有无法识别用户浏览器的版本,从而导至了ASP.NET的特定功能失效,认为游览器不支持Cookies功能,不出理 与Cookie相关的程式码等,从而在浏览器中不保存服务器返回的Session标识,造成丢失等.什儿 大疑问早经微软官方确认,是IE10的3个Bug,也发布了3个HOTFIX专门用来修复什儿 大疑问,各位如遇到同样的大疑问,可参考以下说明: KB210000088: Hotfix 适用在 Microsoft.NET Framework 4.0 中的 ASP.NET [英文KB210008565: Hotfix 适用在 .NET Framework 3.5.1 中的 ASP.NET [英文KB2100001000: Hotfix 适用在 .NET Framework 3.5 SP1 与 .NET Framework 2.0 SP2 中的 ASP.NET [英文]简单的出理 依据是,在网站根目录,新增3个浏览器定义文件(browser definition file) 步骤如下1.添加3个"App_Browsers"文件夹 2.添加3个"*.browser"后缀的文件,如IE10.browser. 3.添加文件内容如下: 

1、下载微软的IE10补丁

三、解決 IE10 无法使用 ASP.NET Forms登录的問題

1

2

8

同3个编译好发布且在絮状用户中正在运行的程序,前一天在win8消费都预览版中让我发现有什儿 大疑问,时会和同事一块儿玩win8消费者预览版的前一天更新一下微软件发的补丁,又好了,时会老要 以为win8正式发布后在ie10用会出理 什儿 大疑问,昨天微软发布win7下的ie10,我需用装上看一下,没想大疑问依然存在,时会在家打开另外一台装有win8的电脑,一样的效果,而且 在ie10下,用开发者工具切换到ie9模式下是正常的,前一天我的开发环境也老要 是ie9+vs2010也是正常的,太奇怪了,3个图中的差别问你你看清楚没办法

6



<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> 

        theForm.submit();

        theForm.__EVENTTARGET.value = eventTarget;

 [已出理 大疑问] 浏览: 789次

.NET 2.0

2、仅仅修复单个站点

     下载IE.browser文件, 地址http://www.hanselman.com/blog/content/binary/App_BrowsersUpdate.zip, 将其中的 ie.browser 拷贝到站点的app_browsers目录下(我仅仅修复了NET2.0的项目)

<script type="text/javascript">

var theForm = document.forms['aspnetForm'];

Bug描述:

【Ie10】

5

    theForm = document.aspnetForm;

什儿 参考资料:

最佳答案

    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {

http://support.microsoft.com/kb/210008565 for Win7/Windows Server 10008 R2 RTM

10

http://support.microsoft.com/kb/2100001000 for Win7 SP1/Windows Server 10008 R2 SP1, Windows Vista/Server 10008, Windows XP/Server 10003

大疑问因为找到了  是ie10的大疑问 http://www.techweb.com.cn/news/2011-09-07/1090483.shtml 微软因为发补丁更新了

不需要吧,这是.net framework  postback机制,和浏览器,开发环境没办法 关系呀,程序能确保没办法 动过?

因为与采用form登录后无法判断用户已登入的出理 依据相同(需测试和验证)

12

        theForm.__EVENTARGUMENT.value = eventArgument;

有的日本日本前男友 反映,在使用微软的ie10什儿 浏览器的前一天,访问用asp.net架构的站点前一天,发现linkbutton失效了, 调试后发现少了_doPostBack 函数, 好端端的为什么么么在就没办法 了了?

注意:记得在win8消费者预览版的前一天,ie10下也是缺少下图中所示的内容,但更新3个windows补丁后就正常了,何解?为什么么么在在到了win8发布正式版后时会出現没办法 大疑问 

  2.仅仅修复单个站点

3

15

http://support.microsoft.com/kb/210008565 for Win7/Windows Server 10008 R2 RTM

</script>

  文章中的出理 依据:

    }

二、非常奇怪的大疑问。

虽然 什儿 大疑问不出理 而且 影响项目的。亲戚亲戚让让当其他同学 不需要用ie10哈哈,而且 还是想知道为那此。当没办法 选取ie10的兼容性视图时,打开了处大疑问的那个页面,报错__doPostBack看得人html源码发现没办法 生成__doPostBack什儿 函数,也根本就没办法 下面这段代码

解決此問題,步驟如下:

出理 依据:

14

一键复制代码代码如下:

  需用去微软下载对应asp.NET版本的修补程序

<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>

View Code

function __doPostBack(eventTarget, eventArgument) {

.NET 2.0

9

 1.机器级别修复, 服务器所有ASP.NET程序受益

     下载IE.browser文件, 地址http://www.hanselman.com/blog/content/binary/App_BrowsersUpdate.zip, 将其中的projects/ie.browser 拷贝到站点的app_browsers目录下(我仅仅修复了NET4.0的项目)

11

http://support.microsoft.com/kb/2100001000 for Win7 SP1/Windows Server 10008 R2 SP1, Windows Vista/Server 10008, Windows XP/Server 10003

五、ASP.NET在IE10中无法判断用户已登入及Session丢失大疑问出理 依据

LinkButton 点击无响应

13

}

}

本文出处:http://www.ablanxue.com/prone_7061_1.html

2. 新增一個副檔名為 *.browser 的檔案,累似 :IE10Fix.browser,檔案內容如下:

设定完成,大疑问即可出理

搜索前一天, 知道是asp.net对IE10渲染的大疑问的bug, .NET2.0和.NET 4.0全部时会原先的大疑问.

.NET 4 -http://support.microsoft.com/kb/210000088

【Chrome】注意:在ie9及其以下版本中,解凝固来的asp.net页面与Chrome中解凝固来的一致,到了ie10中却不正常了,但在ie10中打开开发者工具,切添加ie9模式又正常了,谁能问你这是为什么么么在回事吗

一、IE10浏览器访问 ASP.NET站点不正常的出理 依据[图]

7

.NET 4 -http://support.microsoft.com/kb/210000088

if (!theForm) {