概述

在ie11上浏览页面的时候,突然发现在使用Aspnetpager的页面会有一个bug。

开发环境:win8.1+vs2013+ie11.

项目描述:这个问题出现在内容页中,应用了母版页。

解决方案

查了很多解决方案,最后将vs2013中

将该勾取消,再次浏览,你会发现就正常了,虽然该功能很强大,但是并不是什么时候都需要。希望对你有所帮助。

既然问题出了,那就得问一个为什么?

首先得知道什么是 Browser Link ?

这个 Browser Link 的功能就是通过一个脚本文件架起流程器和 Visual Studio IDE 之前的一个通信桥梁, 在启用 Browser Link 后, Visual Studio 会给网站注入一个 IHttpModule 模块对象, 然后在每个页面都会注册一段上面的脚本。

Browser Link 功能使用 SignalR 技术实现的。

说了这么多, Browser Link 功能到底是用来干什么用的?

现在 Broswer Link 功能比较简单,就是用来在 Visual Studio IDE 可以刷新浏览器中已经打开的页面, 为什么要在 Visual Studio IDE 中刷新页面?

有这么一个应用场景:假如你在开发一个页面,这个页面需要兼容 IE, GOOGLE, FIREFOX 和移动浏览器, 有可能你会同时使用这些流程器打开你的页面, 如果发现有某种问题,回到 VS IDE 进行修改, 修改完后可以在 Visual Studio IDE 点 "Refresh Linked Browsers" 来刷新所有浏览器以查看效果。

现在这个 "Browser Link " 只有这么一个刷新功能, 但是 Browser Link 功能可以编写扩展功能,可以自定义一些自己需要的功能。

Browser Link是连接VS和浏览器之间的通道。有了这个特性,web程序就能够和VS交互传递数据。这个特性在VS2013中是默认开启的。当开启了Browser Link, web程序运行的时候,就会注册一个HttpModule到asp.net的生命周期中,这个HttpModule的功能就是在每个输出的网页中,注入一段<script>脚本,这段脚本的作用就是负责VS IDE和网页间的通讯。

那么看看在启用Brower Link下会出现什么?

首先看一下Aspnetpager

BrowerLink生成的script

当开启了Browser Link, web程序运行的时候,就会注册一个HttpModule到asp.net的生命周期中,这个HttpModule的功能就是在每个输出的网页中,注入一段<script>脚本,这段脚本的作用就是负责VS IDE和网页间的通讯。

难道因为BrowerLink 影响了AspnetPager控件生命周期才造成这个bug的吗?

禁用BrowerLink后

可以正常浏览,aspnetpager控件也能正常使用。

通过对比可以发现,开启BrowerLink后,多了script和__EVENTVALIDATION的input。

__EVENTVALIDATION作用

__EVENTVALIDATION只是用来验证事件是否从合法的页面发送,只是一个数字签名,所以一般很短。
“id”属性为“__EVENTVALIDATION”的隐藏字段是ASP.NET 2.0的新增的安全措施。该功能可以阻止由潜在的恶意用户从浏览器端发送的未经授权的请求.
为了确保每个回发和回调事件来自于所期望的用户界面元素,ASP.NET运行库将在事件中添加额外的验证层。服务器端通过检验表单提交请求的内容,将其与“id”属性为“__EVENTVALIDATION”隐藏字段中的信息进行匹配。根据匹配结果来验证未在浏览器端添加额外的输入字段(有可能为用户在浏览器端恶意添加的字段),并且该值是在服务器已知的列表中选择的。ASP.NET运行库将在生成期间创建事件验证字段,而这是最不可能获取该信息的时刻。像视图状态一样,事件验证字段包含散列值以防止发生浏览器端篡改。 说明:“id”属性为“__EVENTVALIDATION”隐藏字段一般在表单的最下方,如果表单在浏览器端尚未解析完毕时,用户提交数据有可能导致验证失败。

总结

开启与关闭Brower Link差别的在前端源码中可以看到 多了一个script 块,一个hidden,猜测在__EVENTVALIDATION阻止了从浏览器端发送的未经授权的请求,而“input#ctl00$ContentPlaceHolder1$Pager_input”被认为不符合语法要求,造成该问题的。这不知道是BrowerLink的原因,还是AspnetPaer的原因,水平有限,只能分析道这里,如果你有更好的说法,麻烦分享一下。

转载于:https://www.cnblogs.com/wolf-sun/p/4002205.html

[bug] VS2013 Brower Link和Aspnetpager引发的问题分析相关推荐

  1. mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析

    问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...

  2. Docker对外开放2375端口引发安全漏洞分析与解决方案

    前言 最近因为自己的云服务器开放了Docker 2375端口,导致被注入蠕虫,一直在跑挖矿程序.所以大家一定要注意外网环境下不要轻易打开此端口,如果要对外开放此端口,可以参考下面的解决方案,下面就Do ...

  3. 禅道报表中关闭bug统计图_想要简单制作数据可视化分析报表?这个工具绝对好用...

    说到分析报表,行外小白都会觉得很简单,不就是整理数据到表格吗?但对于从事相关职业的同行来说,肯定多多少少会被报表困扰过.特别是对于一些高级的Excel报表,可是它需要复杂的函数,使用编程代码处理,上手 ...

  4. wtc6508bsi,键释放引发的问题分析及解决

    wtc6508bsi主要用作按键,有按键就要有键释放,那么键释放处理不好也会出现这款芯片读取有问题(有时候读取不出来) 解决:在每次按键有被按下的时候才加键释放程序,如果没有按下不要一直扫描键释放程序 ...

  5. h5底部输入框被键盘遮挡_移动端虚拟键盘引发的问题分析

    在工作的过程中无论是与原生结合的Hybird的H5页面或者微信公众号页面都会遇到当触发键盘输入行为时,页面窗口往上离开屏幕(与iOS的适配)或者页面高度变小(在微信中打开页面等),现在我们来分析一下各 ...

  6. keepalived版本引发故障解决分析

    近期在研究实证PG+Keepalived构建高可用集群时,在验证keepalived自动实现主库故障自动切换中,遇到keepalived触发vrrp_script脚本调用一直不正常.即如下图情况所示: ...

  7. c语言狗吃玉米的编程,玉米或玉米面给狗狗当主食可能会引发的问题------分析...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 很多人发现 给狗吃完整的玉米棒子 吃进去什么样 拉出来打大便就是什么样 好像玉米火腿肠那样一段大便里一颗一颗显眼的玉米颗粒..为什么狗不能消化玉米?? 其 ...

  8. 项目纪实丨MySQL Bug引发客户现场升级失败 万里DBA 6小时攻克难关

    上午10:00 某运营商核心报表平台升级前夕 作为万里数据库的战略合作伙伴,某运营商一直密切关注着国产数据库的发展.其系统中一套基于MySQL8.0.11版本的核心报表平台,近期由于存在安全扫描的漏洞 ...

  9. 11.2.0.2的SPM的一个bug

    将该参数optimizer_capture_sql_plan_baselines 设置为true后,出现大量的等待事件:enq: HW - contention select * from VW_SE ...

  10. 如何定位在测试中遇到的Bug?

    bug的分析和定位,这个话题是测试面试中经常聊到的,很多新手或者是日常工作中自我总结比较少的朋友,被问到的时候可能一下就懵了,今天分享一个完整清晰的思路给大家. 日常工作中,每天可能都会遇到不同的bu ...

最新文章

  1. vscode 在ubuntu的terminal中下划线不显示解决方案
  2. 使用饼图_常见图表规范:直方图、圆环图和饼图
  3. C# 调用WinRar解压压缩包
  4. rror Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that
  5. 用Vue的父子组件通信实现todolist的功能
  6. 关于linux LVM
  7. Struts2+Spring+Hibernate环境搭建
  8. C++用libcurl通过HTTP以表单的方式Post数据到服务器
  9. ORA-39181: Only partial table data may be exported due to fine grain access control on OE.PURCHAS
  10. BitTorrent协议与MagNet协议原理
  11. 链表节点的删除(链表data升序有重复)
  12. linux安装wine运行.exe文件
  13. 动态规划之详细分析0-1背包问题
  14. [汇编]汇编学习笔记(6):MASM32编译器编译链接16位汇编
  15. ZXPInstaller for mac(zxp文件安装器)免费版
  16. 小心了,京东订单详情会变?下单记得录屏
  17. 浅析json_encode
  18. SYN FLOOD WINCAP
  19. windows系统oracle11.2.0.4打补丁
  20. 揭秘腾讯研究院:三分之二精力打造免费产品

热门文章

  1. 安装PetShop后调试的诸多问题
  2. Javascript获取地址参数
  3. Spring源码分析——读取Xml过程
  4. 继承(初识继承,继承的进阶)
  5. Ambari 安装配置 MySql
  6. 纯css控制-表格表头固定,内容多时滚动内容
  7. JAVA(int...i)问题
  8. 简单的三层框架以及使用dbutils进行数据库操作(入门)
  9. 个利用正则表达式解析单句SQL的类SqlParser
  10. 七年为限 一觉梦已远——我与你的新贵族