这是一个比较常见的问题了,如果Web表单中有输入类似于 Html 标签之类的文本,在通过 Request.QueryString 或者 Request.Form 传递这些值的时候,就会触发这样的异常,出于脚本注入等安全性考虑,这也是合情合理的。

  先简单的说说 Request.QueryString 和 Request.Form 吧,

  Request.QueryString(取得地址栏参数值),获取地址栏中的参数,意思就是取得 Url ”?"号后面的参数值.如果参数有多个就用 ”” 符号连接起来。

    取值:Request.QueryString["Url地址栏中的参数名称"]

  Request.Form(取得表单参数值),获取提交的Form中的元素的值。

    取值:Request.Form["表单元素的name属性名称"]

  一般情况下,程序应尽量过滤掉,或者禁止表单上类似文本的输入,如果业务上非得有这样的要求,需要输入标签性的文本,可以考虑在数据向服务器端传递前,将一些敏感字符按照约定规则替换掉,向客户端输出时,再还原出原始文本。比如把 "<" 替换成 "&lt;",向客户端输出时,再把"&lt;" 替换成 "<"。

  以上是个人认为比较正确的做法,当然就解决眼前问题而言,如果是Asp.Net WebForm应用程序,就是在 aspx 文件的 page 指令上添加 ValidateRequest=false  属性值,这是对单一表单的做法,要想作用于更广泛的Web表单,自然是在 webconfig 文件中做相同的设置。

  另外,如果是Asp.Net MVC应用程序,

  Framework4.0:

    则需要在webconfig文件的 <system.web> 配置节中加上 <httpRuntime requestValidationMode="2.0"></httpRuntime> 配置(如果已存在 <httpRuntime />   节点,只需在其中添加属性 requestValidationMode="2.0" 。),之后,再在 Controller(作用于整个控制器) 或者 Action(作用于单个方法) 头上添加 [ValidateInput(false)]   的标识,区别大家都知道的,作用域不同而已,这里说的 Asp.Net MVC 是基于 Framework4.0 的环境的,Framework3.5 下没试过,想来差不多。

  Framework4.5:

    其实 Framework4.5 下也差不多,只不过 VS 自动生成的 webconfig 配置文件中的 <httpRuntime /> 节点中添加了 Framework 的版本号而已,用法一样,只需在其中添加属性 requestValidationMode="2.0"(<httpRuntime targetFramework="4.5"  requestValidationMode="2.0"/>),之后,再在 Controller(作用于整个控制器) 或者 Action(作用于单个方法) 头上添加 [ValidateInput(false)] 的标识即可。

最新文章

  1. SpringMVC 入门
  2. 例子:Execution Model Sample - 应用状态保存
  3. 转- android硬件传感器
  4. ASP.NET Web API 配置返回的json字段的格式以及Action返回HttpResponseMessage类型和IHttpActionResult类型
  5. php数组转换成json格式。
  6. memcached完全剖析系列——一、memcached基础
  7. Codeforces Round #198 (Div. 2)
  8. Linux-remote change password (more)
  9. 玩耍Hibernate系列(二)--基础知识
  10. 归档 NSKeyedArchiver
  11. 安装oracle 12c遇到问题
  12. configure: error: zlib library and headers are required
  13. 什么是xsi:type ???
  14. Java基础知识强化之IO流笔记25:FileInputStream / FileOutputStream 复制图片案例
  15. Java中抽象类和接口区别
  16. Python基础之常用模块(三)
  17. 201521123016《java程序设计》第4周学习总结
  18. 疯狂的Django 之深度外键跨表查找之疯狂INNER JOIN
  19. docker修改默认存储位置
  20. 树&#183;二叉查找树ADT(二叉搜索树/排序树)

热门文章

  1. 数据结构 -- Trie字典树
  2. 华为S5700系列交换机配置文件导出、导入
  3. spring cloud微服务实践一
  4. asp.net core-9.依赖注入的使用
  5. Maven项目上总有一个小红叉问题
  6. 图像识别领域的一些code
  7. Rsync同步过程中遇到的常见问题
  8. 关于Vue中,checkBox等组件在赋值后,点击切换页面未及时更新问题
  9. js原生方法的重写
  10. jvm系列(十):如何优化Java GC「