Mam problem ze starszym kodem, który wymaga obsługi losowych adresów URL, tak jakby były one żądaniami strony głównej. Niektóre adresy URL zawierają znaki, które generują błąd „Wykryto potencjalnie niebezpieczną wartość Request.Path na kliencie (&)” . Witryna jest napisana w programie ASP.Net MVC 3 (w języku C #) i działa w usługach IIS 7.5.
Oto przykładowy adres URL ...
http://mywebsite.com/Test123/This_&_That
Oto jak mam konfigurację trasy typu catch-all (mam inne trasy do przechwytywania określonych stron) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
Dodałem następujące rzeczy do mojego pliku web.config ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Dodałem również atrybut ValidateInput do akcji, która powinna przechwytywać adresy URL ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Ale nadal otrzymuję błąd. Jakieś pomysły, dlaczego? Przegapiłem coś? W tej chwili pracuję tylko na moim lokalnym serwerze deweloperskim (nie próbowałem jeszcze tych poprawek w środowisku produkcyjnym).