所以我的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="<,>,%,&,:,\,?" />
答案 0 :(得分:3)
我测试了这段代码并且有效:
httpRuntime targetFramework="4.5.1" requestPathInvalidCharacters="<,>,*,%,&,\,?"