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