.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)] ”
就成功了。