У мене є проблема застарілого коду, яка вимагає, щоб я підтримував випадкові URL-адреси, ніби вони були запитами на домашню сторінку. Деякі URL-адреси містять символи, які генерують помилку "Потенційно небезпечне значення Request.Path було виявлено у клієнта (&)" . Сайт написаний на ASP.Net MVC 3 (в C #) і працює на IIS 7.5.
Ось приклад URL ...
http://mywebsite.com/Test123/This_&_That
Ось як у мене налаштування маршруту загального маршруту (у мене є інші маршрути для лову певних сторінок) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
До мого файлу web.config я додав такі речі ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
Я також додав атрибут ValidateInput для дії, яка повинна ловити URL-адреси ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Але я все-таки отримую помилку. Будь-які ідеї чому? Я щось пропустив? Зараз я просто працюю на своєму локальному сервері розробників (я ще не пробував цих виправлень у виробництві).