如何在ASP.NET WebAPI中覆盖RequestValidation

Ric*_*ahl 11 request-validation asp.net-web-api

我遇到了包含"危险字符"作为Web API URL一部分的请求的问题.Url包含一个正确的Url编码的&,但仍会导致请求验证ASP.NET错误.

与MVC不同,似乎没有[ValidateInput(false)]属性来强制和禁用此功能.

Ric*_*ahl 8

原来答案是在web.config中使用以下方法执行此操作:

<system.web>
  <httpRuntime requestPathInvalidCharacters="" />  
</system.web>
Run Code Online (Sandbox Code Playgroud)

您可以在全局或子目录级别设置此项.您可以利用该<location path="">元素仅在某些路径下指定此设置.例如,如果受影响的Web API路由位于api/images下,则可以执行以下操作:

<location path="api/images">
  <system.web>
    <httpRuntime requestPathInvalidCharacters="" />  
  </system.web>
</location>
Run Code Online (Sandbox Code Playgroud)

更多信息:https://msdn.microsoft.com/en-us/library/e1f13641(v = vs.100).aspx