le déploiement de AntiforgeryToken Erreur
je travaille sur un ASP.NET application MVC sur ma machine locale en utilisant le Visual Studio 2012 intégré dans IISExpress. Après un progrès significatif j'ai décidé de le rendre disponible à travers le réseau Local, j'ai créé un répertoire virtuel à partir de visual studio. Je peux me connecter mais quand j'essaie d'enregistrer un nouvel utilisateur. Je reçois le message d'erreur ci-dessous.
le jeton anti-contrefaçon n'a pas pu être déchiffré. Si cette application est hébergé par une ferme Web ou une grappe, s'assurer que tous les machines utilisent la même version de ASP.NET Pages Web et que la configuration spécifie explicitement clés de cryptage et de validation. AutoGenerate ne peut pas être utilisé dans un cluster.
j'ai généré une nouvelle machine, la clé de (ressources ASPNET) et l'a placé dans mon fichier de configuration mais ne fonctionne pas encore.Quelqu'un peut-il proposer une solution?
5 réponses
une chose que j'ai remarquée est que cette erreur pourrait être causée par le fait d'avoir plusieurs @Html.AntiForgeryToken()
des morceaux de code sur la page. J'ai eu 2 sur ma page, et une fois que j'ai enlevé la seconde, cette erreur a disparu.
vous devriez ajouter une touche machine qui est unique à la combinaison Site/machine. C'est cette clé machine que le jeton générateur utilise. Cela signifie que vous devez générer une clé de l'ordinateur (vous pouvez le faire ici (lien mort-méfiez-vous) et ajoutez-le à votre site web.fichier de configuration sur votre machine. Vous pouvez trouver plus d'informations ici: http://msdn.microsoft.com/en-us/library/ff649308.aspx
vous pouvez également le faire directement à partir de L'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, il s'agissait d'un problème avec l'équilibreur de charge n'ayant pas de session persistance activée pour le site.
j'avais une page qui utilisait la vue partielle. Les deux contiennent @Html.AntiForgeryToken () et sur la suppression du @Html.AntiForgeryToken () à partir de la page partielle, cela a fonctionné.