У меня есть проблема с устаревшим кодом, которая требует, чтобы я поддерживал случайные URL-адреса, как если бы они были запросами для домашней страницы. Некоторые из URL-адресов содержат в них символы, которые генерируют ошибку "Потенциально опасное значение Request.Path было обнаружено у клиента (&)" . Сайт написан с ASP.Net MVC 3 (в С#) и работает на 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();
}
}
Но я все еще получаю ошибку. Любые идеи почему? Я что-то пропустил? Сейчас я просто работаю на своем локальном dev-сервере (я еще не пробовал эти исправления в процессе создания).