У меня есть сайт MVC3 в С#, у меня есть определенное представление, которое передают параметры запроса из функции 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 SP1