asp.net - 奇怪的 ValidateInputIfRequiredByConfig 错误

标签 asp.net asp.net-mvc asp.net-mvc-3

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

相关文章:

asp.net - 是否有支持请求参数连接的 URL 构建器?

javascript - 如何使用 javascript 停止触发事件

asp.net - 如何在 MVC3 应用程序中实现 Google reCaptcha?

asp.net-mvc - 在ASP.Net MVC的 View 中获取 Controller 的名称和操作方法

javascript - 在字符串中显示下载的 html

.net - RSACryptoServiceProvider CryptographicException 系统找不到 ASP.NET 下指定的文件

c# - 通过 ASP.NET 按钮在 aspx 页面中导航 anchor 标记

c# - MVC3 EnumDropdownList 选定值

asp.net-mvc-3 - 内联标记 block 不能嵌套。仅允许一级内联标记。 MVC Razor

c# - 在 ASP.NET MVC 中返回文件以查看/下载