Oli*_*ryn 5 c# url routing asp.net-web-api
因此,我的 ASP.NET Web API 项目中有一个端点需要接受特殊字符(例如%, <, >)来验证系统中名称的唯一性。所以对于以下路线:
[Route("~/api/case/{name}/infosys/{system}")]
Run Code Online (Sandbox Code Playgroud)
...{name}可能包含特殊字符。对于这个端点,只有一种方法可以告诉 Web API 允许特殊字符而不是给出这个错误:
HttpException (0x80004005): A potentially dangerous Request.Path value was detected from the client (%).
Run Code Online (Sandbox Code Playgroud)
注意:这是一个 Web API 项目,因此[ValidateInput(false)]和[AllowHtmlAttribute]装饰器不可用。此外,我不想通过修改我的 Web.config 来放松对任何其他端点的限制:
No
<httpRuntime requestValidationMode="2.0" />
...
No
<pages validateRequest="false">
...
No
<httpRuntime requestPathInvalidCharacters="<,>,%,&,:,\,?" />
Run Code Online (Sandbox Code Playgroud)
我测试了这段代码并且它有效:
httpRuntime targetFramework="4.5.1" requestPathInvalidCharacters="<,>,*,%,&,\,?"
Run Code Online (Sandbox Code Playgroud)