我收到由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/