2008-11-25 6 views
0

Lors d'un récent test de charge, je reçois un peu étrange "Index Out of Range Exception"Erreur étrange dans l'application .net. - RijndaelManaged

trace de la pile:

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) 

Nous n'utilisons une ferme ou d'un groupe, et je suis ne pas utiliser de cryptographie dans l'application.

Il semble que cela se passe dans les coulisses des classes .Net.

Je suppose que cela a quelque chose à voir avec viewstate, mais je ne peux pas savoir pourquoi cela est lancé.

Des idées?

Répondre

1

Si quelqu'un lance un message, l'application commence à envoyer le message avec tous les 500 Ko de viewstate. À mi-chemin de la publication, l'utilisateur s'ennuie et clique sur autre chose. Le navigateur coupe la publication avec juste une partie du viewstate. Le serveur envoie une erreur indiquant que viewstate est verrouillé. Je suppose que c'est une application 2.0 avec la fonctionnalité de cryptage viewstate activée. La solution consiste à gérer la taille de viewstate de manière plus agressive.

Les exceptions de validation d'événement sont plus susceptibles de se produire lorsqu'un utilisateur malveillant crée une réponse de publication personnalisée, donc je ne pense pas que la validation d'événement soit impliquée ici.

+0

Oui, c'est 2.0. Est-ce que le cibler sur 3.0 serait magique? –

0

Juste une supposition: avez-vous désactivé EventValidation sur le site? Il semble que quelque chose essaie de créer une publication manuelle ou insère des données directement dans les données de publication de la requête http, et la valeur correcte pour le champ viewstate n'est pas calculée. Ceci à son tour provoque l'échec spectaculaire du déchiffrement. Si EventValidation est activé, vous obtiendrez une exception, même si tous les calculs sont correctement effectués, mais au moins, il s'agit d'une exception significative.

+0

La validation d'événement a été désactivée afin d'éviter cette erreur. Cela n'a eu aucun effet. –

+0

Alors c'était avant? C'est une bonne chose. –

+0

Oui, c'était avant. –