La définition de ViewStateUserKey me donne une erreur «Validation de l'état MAC de viewstate»
J'ai la suite dans ma BasePage
classe toutes mes pages ASPX proviennent de:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
ViewStateUserKey = Session.SessionID;
}
J'ai aussi un machineKey
ensemble dans Web.config
. Je ne pense pas que cette erreur est à cause d'une batterie de serveurs web, car ce qui se passe sur ma machine de dev.
Mon hôte a maintenant mis à niveau .NET 3.5 SP1. Après cette mise à jour, chaque fois que je compile avec le ViewStateUserKey
réglage ci-dessus, je ne cesse de recevoir de la "Validation de MAC viewstate d'erreur" echec de chaque publication.
Ce que je fais mal? Est ce paramètre, même plus nécessaire avec la dernière mise à jour de framework?
source d'informationauteur Druid
Vous devez vous connecter pour publier un commentaire.
OK - je suis une année fin de la conversation - mais comment est-ce la bonne réponse? Cela s'applique uniquement dans le cas des utilisateurs authentifiés à l'aide de la
ViewStateUserKey
que le nom d'utilisateur est beaucoup plus facile de deviner qu'un id de session GUID.BTW, si vous voulez régler le code de dessus, utilisez l'ID de Session, cependant, vous devez définir une variable de session pour que l'id de session pour arrêter de changer à chaque fois. Ex.
Session["Anything"] = DateTime.Now
C'est bien sûr en supposant que vous allez utiliser les sessions, sinon vous avez besoin d'un clé à utiliser comme le nom d'utilisateur ou de toute autre guid conservés dans un cookie.
J'ai cherché un peu pour trouver la cause définitive de la question.
Ce post à partir de Microsoft a vraiment aidé à comprendre les différentes causes.
http://support.microsoft.com/kb/2915218
Cause 4 est ce que nous avons atterri sur ce qui n'est pas valide ViewStateUserKeyValue
Réglage ViewStateUserKey à la Session.Id de session ou de l'Utilisateur.L'identité.Le nom n'a pas de travail pour nous.
Nous par intermittence eu l'erreur de validation pour les raisons suivantes.
Lorsque le pool d'applications est réinitialisé par IIS, la session est renouvelé en effet l'origine de l'erreur.
Nous laissons tomber la Session lors de la connexion, pour éviter la fixation de session, ce qui entraîne également l'erreur lors de la connexion.
Ce qui a finalement fonctionné pour nous a été un témoin en fonction de la solution, qui est actuellement prévu dans VS2012.
Source
J'ai corrigé pour l'instant en modifiant le code:
Pouvez-vous désactiver le ViewState MAC encodage avec le EnableViewStateMac @attribut de la Page?
TRÈS Étrange, j'ai moi aussi eu le même problème depuis 3 jours et maintenant j'ai résolu.
1. J'avais activé l'authentification de formulaires et avait ssl faux
mais dans mon httpcookies tag que j'avais requireSSL=true. Depuis le Site.Maître.cs c'utilise des cookies pour définir la ViewStateUserKey, c'était d'avoir des problèmes
donc j'obtenais l'erreur.
J'ai modifié cette fausse et redémarré web app, maintenant c'est tout bon.