当我访问ASP.NET MVC 5应用程序的URL /x:)
时,出现此错误:
A potentially dangerous Request.Path value was detected from the client (:).
[HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (:).]
System.Web.HttpRequest.ValidateInputIfRequiredByConfig() +9939892
System.Web.PipelineStepManager.ValidateHelper(HttpContext context) +53
这是完整的堆栈跟踪。
我想完全禁用请求验证。我不需要它,甚至需要处理像这样的奇怪URL。
我已经应用了所有这些设置,但是它们不起作用:
<httpRuntime targetFramework="4.7.2" requestValidationMode="2.0" />
<pages validateRequest="false" />
[ValidateInput(false)]
如何避免完全避免请求验证?
答案 0 :(得分:2)
要在URL路径中允许使用特殊字符,应修改web.config中的requestPathInvalidCharacters参数,如下所示:
<system.web>
<httpRuntime requestPathInvalidCharacters="<,>,%,&,:,\,?" />
</system.web>
注意,我刚刚删除了星号(*),原始默认字符串为:
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,:,\,?" />