2013-11-27 35 views
0

我使用MVC 4并启用请求验证:为什么RequestValidation不能在AJAX请求上验证?

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

为什么验证仅适用于表单请求没有AJAX请求?如果表单请求包含包含HTML文本的字段,例如:'<html'>则验证会引发错误“从客户端检测到潜在危险的Request.Form值...”。但是,对于包含HTML文本的AJAX请求,为什么.NET验证不会引发错误?

最后,我有一个问题:对AJAX请求的验证是没用的?

谢谢。

回答

1

默认情况下,Ajax请求确实不受RequestValidation影响。虽然你可以覆盖这种行为并实现你自己的验证:Security Issue in MVC AJAX

这适用于MVC3,但我不知道它是否可以在MVC4或5上工作。但你绝对可以检查出来。