У меня есть сайт MVC3 на C #, у меня есть конкретное представление, в которое загружаются параметры запроса из функции JavaScript, функция перенаправляет на сайт через
window.location.href = "../ActionName?" + query_string;
query_string - строка динамических параметров запроса, созданная функцией JavaScript.
Причина этой странности заключается в том, что иногда одна и та же функция передает URL-адрес веб-форме ASP.Net из-за того, что ей необходимо использовать элемент управления reportviewer , альтернативным действием является сохранение некоторых параметров, в этом случае он передается в представление. (Могу рассказать подробнее, если это не имеет смысла)
Все работает нормально, пока я не введу [Authorize] в метод действия. Ломается, если он установлен, отлично работает без него, а [Авторизация] отлично работает со всеми другими методами.
Весь URL-адрес в этом случае составляет 966 символов, после исследования кажется, что значение maxQueryStringLength по умолчанию равно 2048, но может быть переопределено на любое значение типа integer, поэтому просто для усмешки я добавил
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
ключ к файлу веб-конфигурации под ключом.
Никакой радости там не было, поэтому я стал смешным и сделал 4096, но все равно никакой радости.
Теперь, когда весь URL-адрес составляет 966 символов, атрибут authorize не может серьезно добавлять еще 1082-3130 символов, так как я могу определить, что на самом деле ошибка или почему параметр не вступает в силу.
VS2010 Pro с пакетом обновления 1 (SP1)