Je travaille sur une application ASP.NET MVC sur mon ordinateur local à l'aide de Visual Studio 2012 intégré à IISExpress. Après des progrès significatifs, j'ai décidé de le rendre disponible sur le réseau local. J'ai créé un répertoire virtuel à partir de visual studio. Je peux me connecter mais quand j'essaye d'enregistrer un nouvel utilisateur. Je reçois l'erreur ci-dessous.
Le jeton anti-falsification n'a pas pu être déchiffré. Si cette application est hébergé par une batterie de serveurs Web ou un cluster, assurez-vous que toutes les machines exécutent la même version de Pages Web ASP.NET et que la configuration spécifie .__ explicite. clés de cryptage et de validation. AutoGenerate ne peut pas être utilisé dans un cluster.
J'ai généré une nouvelle clé d'ordinateur à partir de ( Ressources ASPNET ) et l'ai placée dans mon fichier de configuration, mais ne fonctionne toujours pas. Quelqu'un peut-il proposer une solution?
Une chose que j’ai remarquée, c’est que cette erreur pouvait être provoquée par l’ajout de plusieurs éléments de code @Html.AntiForgeryToken()
sur la page. J'avais 2 sur ma page et une fois que j'ai enlevé le second, cette erreur est partie.
Vous devez ajouter une clé de machine propre à la combinaison site Web/machine. C'est cette clé machine que le générateur de jetons utilise. Cela signifie que vous devez générer une clé d'ordinateur (que vous pouvez faire ici (dead link-beware) et l'ajouter à votre fichier Web.config sur votre ordinateur. Vous trouverez plus d'informations ici: http://msdn.Microsoft.com/en-us/library/ff649308.aspx
Vous pouvez également le faire directement depuis IIS: http://blogs.msdn.com/b/amb/archive/2012/07/31/easiest-way-to-generate-machinekey.aspx
Là j'ai pu trouver la réponse http://iamdotnetcrazy.blogspot.ru/2013/08/how-to-solve-anti-forgery-token-could.html
Dans mon cas, c'était un problème avec l'équilibreur de charge car la persistance de session n'était pas activée pour le site.
J'avais une page qui utilisait la vue partielle. Les deux contenaient @ Html.AntiForgeryToken () et en supprimant @ Html.AntiForgeryToken () de la page partielle, cela fonctionnait.