ValidateInputIfRequiredByConfig

ValidateInputIfRequiredByConfig

我收到由ValidateInputIfRequiredByConfig()引起的随机异常。

我没有确切的消息,因为我们的服务器是pt-BR,所以错误消息已翻译。

我知道,如果用户在输入中输入恶意代码(例如示例),则可能引发此错误。但这不是事实。

我得到这个,要求一些图像。下面是一些来自Elmah的信息。

HTTP_USER_AGENT:    GbPlugin
PATH_INFO:          /Content/images/BannerWelcome.jpg?1110311762734
PATH_TRANSLATED:    C:\inetpub\wwwroot\Content\images\BannerWelcome.jpg?1110311762734
REQUEST_METHOD:     GET
SCRIPT_NAME:        /Content/images/BannerWelcome.jpg?1110311762734

应用程序是ASP.NET MVC 3,在Windows 2008,IIS 7.5上运行

编辑:

pt-BR中的异常消息:
System.Web.HttpException
Um valor possivelmente perigoso Request.Path foi detectado no cliente (?).

System.Web.HttpException (0x80004005): Um valor possivelmente perigoso Request.Path foi detectado no cliente (?).
   em System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
   em System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)

编辑:

英文异常消息:“从客户端Request.Path中检测到潜在危险值”

编辑2:

我无法重现此错误。据我所知,这只是对这张图片的要求。

最佳答案

<pages validateRequest="false" />

在MVC3中不起作用。

1)您必须在每个 Controller 或操作上明确放置[ValidateRequest(false)]

2)如果您使用.NET4,这还不够,因为.NET4中存在一个“错误/功能”,它阻止了[ValidateInput(false)]起作用。
您还必须使用2.0的requestValidationMode禁用requestPathInvalidCharacters,validateRequest和requestFiltering:
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />

关于asp.net - 奇怪的ValidateInputIfRequiredByConfig,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8124453/

10-10 07:48