2016-04-07 24 views
1

dan bir Potansiyel olarak tehlikeli Request.Path değeri algılandı Bu yüzden ASP.NET Web API projemde, benzersizliği doğrulamak için özel karakterleri (%, <, > gibi) kabul etmesi gereken bir uç nokta var sistem içindeki bir ismin Aşağıdaki rota için So:Web API: İstemci

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

... {name} özel karakter içerebilir.

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

Not: Bu [ValidateInput(false)] ve [AllowHtmlAttribute] dekoratörler böylece bir Web API projesidir için bu son nokta sadece bu hatayı verir özel karakterler izin Web API söylemek ve olamaz bir yol var müsait değil. Ben bu kod parçası test

No 
<httpRuntime requestValidationMode="2.0" /> 

... 

No 
<pages validateRequest="false"> 

... 

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

AllowHtmlAttribute belki? –

+0

@JamesR. Eh, bu rota için sadece HTML'ye izin vermem, ve 'AllowHtmlAttribute' Web API'sında mevcut değildir. –

+0

oh iyi. Özür dilerim, karanlıkta bir çekim yapmak ... –

cevap

2

ve işe yarıyor: Ayrıca, benim Web.config değiştirerek başka son nokta bu kısıtlamayı gevşetmek istemiyorum

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