'requestValidationMode=2.0' делает URL чувствительным к регистру

Я работаю над проектом asp.net MVC4 (iis 7). Чтобы предотвратить сообщение "Потенциально опасный запрос", я добавил в файл web.config строку "httpRuntime requestValidationMode="2.0" />" Это действительно предотвратило сообщение, но произошла другая вещь - URL внезапно стал чувствительным к регистру. Когда я удаляю эту строку, возвращаемая ссылка не чувствительна к регистру, но сообщение возвращается.

Кто-нибудь знает, как я могу пользоваться обоими преимуществами?

Большое спасибо!

РЕДАКТИРОВАТЬ: Ну, я обнаружил, что разница в том, что когда я добавляю эту строку, cookie-файлы auth (fedAuth) различаются, и по каким-то причинам новые cookie-файлы имеют дату истечения срока действия и учитывают регистр. До сих пор не могу понять причину разницы и как ее предотвратить.

1 ответ

Я немного искал, как MVC на IIS может стать чувствительным к регистру, похоже, что это даже почти не предполагается поддерживать. Скорее всего, у вас есть какой-то нестандартный код.

Это может быть какая-то взломанная / плохая логика в конфигурации ваших маршрутов (по умолчанию находится в App_Start/RouteConfig.cs). Или какой-то плохой код в ваших фильтрах действий, Controller.OnActionExecuting переопределяет или даже непосредственно в реализации ваших действий.

У вас также может быть установлен URL Rewrite и он плохо настроен. Проверьте некоторые примеры здесь.

Другие вопросы по тегам