2009-05-28 7 views
0

J'ai une application Web qui utilise l'authentification par formulaire. Lorsque j'effectue les étapes suivantesLa validation de MAC viewstate a échoué dans Safari

  1. Laissez le cookie de connexion expire
  2. Cliquez sur un lien qui nécessite un utilisateur connecté
  3. L'utilisateur est redirigé vers la page de connexion
  4. Cliquez sur le bouton Retour du navigateur
  5. l'utilisateur est redirigé vers la page de connexion
  6. se connecter avec un nom d'utilisateur valide/mot de passe

Je reçois cette exception La validation de MAC viewstate a échoué. Si cette application est hébergée par une batterie ou un cluster Web, assurez-vous que la configuration spécifie le même algorithme de validation et de validation. AutoGenerate ne peut pas être utilisé dans un cluster.

Ce cas apparaît uniquement dans safari (windows et mac). La différence fondamentale entre Safari et les autres navigateurs est que lorsque nous cliquons sur le bouton Précédent à l'étape 4, Safari affiche à nouveau la page de connexion, tandis que les autres navigateurs affichent la page précédente sur laquelle l'utilisateur travaillait.

S'il vous plaît aider à cet égard

Répondre

0

Bien que je l'ai vu erreurs dans mon journal qui me font croire que je suis face à la même question que vous, je n'ai pas encore été en mesure de reproduire l'erreur dans un exemple d'application. Ma conjecture est que l'information de viewstate de la page expirée est soumise à la page de connexion, qui n'est pas valide. Pour corriger cela, il peut être possible de mettre quelque chose au début du cycle de vie de la page de connexion (peut-être Page_Init) qui reconnaîtrait une redirection vers la page de connexion (peut-être via le referer) et contournerait la validation viewstate.

1

Nous avons eu un problème similaire avec viewstate commençant par Safari v 5.1.4.

Notre problème a été causé parce que nous avons soumis un formulaire pendant l'événement window.onload, puis redirigé vers une nouvelle page. Lors de la soumission de la deuxième page, nous aurons la péroraison que vous signalez.

Nous avons déterminé que Safari 5.1.4 et 5.1.5 envoyais le ViewState pour la page précédente lorsque nous avons présenté la deuxième page qui provoque l'erreur de validation

Voir ma réponse dans ce fil ASP.NET Viewstate with Safari 5.x

Questions connexes