Ich habe eine MVC3-Site in C #. Ich habe eine bestimmte Ansicht, die Abfrageparameter von einer JavaScript-Funktion erhält. Die Funktion leitet über zur Site weiter
window.location.href = "../ActionName?" + query_string;
query_string ist die dynamische Abfrageparameterzeichenfolge, die von der JavaScript-Funktion erstellt wird.
Der Grund für diese Verrücktheit ist, dass manchmal dieselbe Funktion die URL an ein ASP.Net-Webformular übergibt, da es das Reportviewer- Steuerelement verwenden muss. Die alternative Aktion besteht darin, einige Parameter zu speichern, in diesem Fall wird sie an die Ansicht übergeben. (Kann mehr ausarbeiten, wenn das keinen Sinn ergibt)
Das Ganze funktioniert einwandfrei, bis ich [Authorize] in die Aktionsmethode einführe. Bricht ab, wenn es vorhanden ist, funktioniert ohne ohne und [Autorisieren] funktioniert gut mit allen anderen Methoden.
Die gesamte URL ist in diesem Fall 966 Zeichen lang. Nach Recherchen scheint der maxQueryStringLength- Wert standardmäßig 2048 zu sein, kann jedoch auf einen beliebigen Wert vom Typ Integer überschrieben werden. Daher habe ich nur für Grinsen den Wert hinzugefügt
<security>
<requestFiltering>
<requestLimits maxQueryString="2048"></requestLimits>
</requestFiltering>
</security>
Schlüssel zur Webkonfigurationsdatei unter dem Schlüssel.
Keine Freude dort, also wurde ich lächerlich und machte es 4096, immer noch keine Freude.
Da die gesamte URL 966 Zeichen lang ist, kann das Autorisierungsattribut nicht ernsthaft weitere 1082-3130 Zeichen hinzufügen. Wie kann ich also feststellen, was der Fehler tatsächlich ist oder warum die Einstellung nicht wirksam wird?
VS2010 Pro SP1