Frage

Während eines kürzlichen Belastungstest, ich habe einige seltsame "Index Out of Range Exception" bekommen

Stack-Trace:

 at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
   at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
   at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo)
   at System.Web.UI.Page.DecryptString(String s)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Wir sind nicht eine Farm oder Cluster verwenden, und ich bin keine Kryptographie in der App.

Es scheint, dass diese hinter den Kulissen .NET-Klassen in dem geschehen.

Ich stelle dar, das etwas mit Ansichtszustand zu tun hat, aber ich kann nicht herausfinden, warum das geworfen wird.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Wenn jemand einen Beitrag initiiert, startet die Anwendung die Post mit allen 500kbs von Ansichtszustand zu schicken. Auf halbem Weg durch Postbacks, wird der Benutzer gebohrt und klickt auf etwas anderes. Der Browser schneidet die Postbacks mit nur einem Teil des Ansichtszustandes aus. Der Server wirft einen Fehler, sagt der Ansichtszustand borked ist. Ich würde vermuten, das ist eine 2.0-Anwendung mit der Ansichtszustand Verschlüsselungsfunktion eingeschaltet. Die Lösung ist Ansichtszustand Größe aggressiver zu verwalten.

Die Ereignisvalidierung Ausnahmen sind eher passieren, wenn ein böswilliger Benutzer eine benutzerdefinierte Postbacks Antwort Crafting, so dass ich glaube nicht, Ereignisvalidierung hier beteiligt ist.

Andere Tipps

Nur eine Vermutung: haben Sie deaktiviert Eventvalidation auf der Website? Klingt wie etwas versucht, eine manuelle Postbacks zu erstellen oder auf andere Weise Daten einfügen direkt in die Post-Daten der HTTP-Anforderung und wird nicht den richtigen Wert für den Ansichtszustand Feld berechnet. Dies wiederum bewirkt, dass die Entschlüsselung spektakulär scheitern.

Mit Eventvalidation eingeschaltet werden Ihnen eine Ausnahme erhalten, auch wenn sie alles richtig zu berechnen, aber zumindest ist es eine sinnvolle Ausnahme.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top