.net MVC 访问风险提示

  我是在一次以XML格式的字符串作为参数值进行post请求时,服务器端(MVC模式)报出“从客户端(StaffBindReq="<?xml version="1.0" ...")中检测到有潜在危险的 Request.Form 值”的错误。

  然后在网上查找解决方案,给的解决方案都是这样的:

*************************************************************

  方法一、修改.aspx文件

  在.aspx文件中加入validateRequest="false",形如:

  <%@ Page validateRequest="false" language="c#" Codebehind="WriteNews.aspx.cs" Inherits="News.WriteNews" %>

  方法二、配置web.config文件
  <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.web>

       <pages validateRequest="false"/>

         </system.web>
    </configuration>

***************************************************************

  但是在mvc中,第一种方法显然是不可取的,第二种我加上之后,发现不起作用。然后在网上查找解决方案,给出的新的解决方案是在方法前加上“[ValidateInput(false)] ”,最终发现依然不起作用。

  没办法,接着查,最后的解决方案是改变了运行时的框架。

  将

  <system.web>
  <httpRuntime targetFramework="4.5" />
  <httpRuntime requestValidationMode="2.0" />
  <compilation debug="true" targetFramework="4.5" />

  </system.web>

  改为:

  <system.web>
  <httpRuntime requestValidationMode="2.0" />
  <compilation debug="true" targetFramework="4.5" />

  </system.web>

  然后再加上上面改的两点:

  1

  配置web.config文件
  <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.web>

       <pages validateRequest="false"/>

         </system.web>
    </configuration>

  2 在方法前加上“[ValidateInput(false)] ”

  就成功了。

posted @ 2014-08-20 18:50  jiang_jiang  阅读(140)  评论(0编辑  收藏  举报