2016-04-07 18 views
1

ASP.NET Web APIプロジェクトで、特殊文字(%<>など)を受け入れて一意性を検証する必要があるエンドポイントが1つありますシステム内の名前のしたがって、次のルートの場合:Web API:潜在的に危険なRequest.Path値がクライアントから検出されました

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

... {name}は、特殊文字を含む場合があります。 のためにこのエンドポイントは、唯一私は特殊文字を許可すると、このエラーを与えないようにWeb APIを伝えることができる方法があります:

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

注:[ValidateInput(false)][AllowHtmlAttribute]デコレーターがあるので、これは、Web APIプロジェクトです利用不可。また、私は私のWeb.configファイルを変更することで、他のエンドポイントでこの制限を緩めたくない:

No 
<httpRuntime requestValidationMode="2.0" /> 

... 

No 
<pages validateRequest="false"> 

... 

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

AllowHtmlAttribute多分? @ JamesR。 –

+0

まあ、私は必ずしもこのルートのHTMLだけを許可しているわけではなく、 'AllowHtmlAttribute'はWeb APIでは利用できません。 –

+0

ああ。申し訳ありませんが、暗闇の中で撃つだけでした... –

答えて

2

私は、コードのこの部分をテストし、それが動作:

httpRuntime targetFramework="4.5.1" requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\,?" 
関連する問題