У меня есть приложение ASP.NET MVC с маршрутом, который позволяет искать вещи через / search / <searchterm>.
Когда я предоставляю "search / abc", он работает хорошо, но когда я предоставляю "/ search / a + b + c" (правильно закодированный URL), IIS7 отклоняет запрос с ошибкой HTTP 404.11 ( модуль фильтрации запросов настроен на запрет запрос, содержащий двойную escape-последовательность ). Прежде всего, почему он это делает? Кажется, что только выдает ошибку, если она является частью URL, но не как часть строки запроса (/ передача? Q = a + b + c работает нормально).
Теперь я мог включить двойные запросы на экранирование в разделе безопасности моего web.config, но я не решаюсь это сделать, так как не понимаю последствий, а также почему сервер не отклонит запрос «a + b + c» как часть URL, но принять как часть строки запроса.
Может кто-нибудь объяснить и дать совет, что делать?
/search/a%2520b%2520c
разметку, которая привела к прекрасной ошибке «Потенциально опасное значение Request.Path было обнаружено из клиента (%)». Вы не можете выиграть, кажется.