Mam witrynę MVC3 w C #, mam określony widok, który jest podawany z parametrami zapytania z funkcji JavaScript, funkcja przekierowuje do witryny za pośrednictwem
window.location.href = "../ActionName?" + query_string;
query_string to ciąg dynamicznych parametrów zapytania utworzony przez funkcję JavaScript.
Przyczyną tej dziwności jest to, że czasami ta sama funkcja przekazuje adres URL do formularza internetowego ASP.Net, ponieważ musi używać kontrolki reportviewer , alternatywną akcją jest zapisanie niektórych parametrów w tym przypadku przekazuje je do widoku. (Może rozwinąć więcej, jeśli to nie ma sensu)
Całość działa dobrze, dopóki nie wprowadzę [Authorize] do metody akcji. Przerywa, jeśli jest na miejscu, działa dobrze bez, a [Autoryzuj] działa dobrze na wszystkich innych metodach.
Cały adres URL w tym przypadku ma długość 966 znaków, po badaniach wydaje się, że wartość maxQueryStringLength to domyślnie 2048, ale można ją zastąpić dowolną wartością typu integer, więc tylko dla uśmiechów dodałem
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
key do pliku konfiguracji sieciowej pod kluczem.
Żadnej radości, więc stałem się śmieszny i zrobiłem to 4096, nadal nie ma radości.
Teraz, gdy cały adres URL ma długość 966 znaków, atrybut autoryzacji nie może poważnie dodawać kolejnych 1082-3130 znaków, więc jak mogę określić, na czym właściwie polega błąd lub dlaczego ustawienie nie działa.
VS2010 Pro z dodatkiem SP1