Web API:从客户端检测到潜在危险的Request.Path值

时间:2016-04-07 19:45:10

标签: c# url asp.net-web-api routing

所以我的ASP.NET Web API项目中有一个端点需要接受特殊字符(例如%<>)以验证名称的唯一性在系统内。所以对于以下路线:

[Route("~/api/case/{name}/infosys/{system}")]

... {name}可能包含特殊字符。对于此端点,有一种方法可以告诉Web API允许使用特殊字符而不会出现此错误:

HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (%).

注意:这是一个Web API项目,因此[ValidateInput(false)][AllowHtmlAttribute]装饰器不可用。另外,我不想通过修改我的Web.config来放宽对任何其他端点的限制:

No
<httpRuntime requestValidationMode="2.0" />

...

No
<pages validateRequest="false">

...

No
<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,:,\,?" />

1 个答案:

答案 0 :(得分:3)

我测试了这段代码并且有效:

httpRuntime targetFramework="4.5.1" requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\,?"