我收到由 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) 你必须明确地把 [ValidateRequest(false)] 放在每个 Controller 或 Action 上
2) 如果您使用 .NET4,这还不够,因为 .NET4 中存在阻止 [ValidateInput(false)] 工作的“错误/功能”。
您还必须使用 requestValidationMode 2.0 禁用 requestPathInvalidCharacters、validateRequest 和 requestFiltering:
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
关于asp.net - 奇怪的 ValidateInputIfRequiredByConfig 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8124453/