Anti faux jeton signifie pour l'utilisateur “” mais l'utilisateur actuel est le “nom d'utilisateur”

Je suis en train de construire une seule page de l'application et de rencontrer un problème avec les anti-faux jetons.

Je sais pas pourquoi le problème se produit-je ne sais pas comment le résoudre.

Je reçois le message d'erreur lorsque les événements suivants se produit:

  1. Non-enregistrés l'utilisateur charge un dialogue (avec un anti-faux jeton)
  2. Utilisateur ferme la boîte de dialogue
  3. Utilisateur se connecte
  4. Utilisateur ouvre la boîte de dialogue même
  5. Utilisateur soumet le formulaire dans la boîte de dialogue

Anti faux jeton signifie pour l'utilisateur "" mais l'utilisateur actuel est
"nom d'utilisateur"

La raison à cela est parce que mon application est 100% sur une seule page, et quand un utilisateur se connecte avec succès par le biais d'un ajax post pour /Account/JsonLogin, il me suffit de passer les points de vue actuels avec la "authentifié vues" retourné par le serveur, mais ne pas recharger la page.

Je sais que c'est la raison parce que si je simple rechargement de la page, entre les étapes 3 et 4, il n'y a pas d'erreur.

Il semble donc que @Html.AntiForgeryToken() dans la forme chargée renvoie toujours un jeton pour l'ancien utilisateur jusqu'à ce que la page est rechargée.

Comment puis-je changer @Html.AntiForgeryToken() pour retourner un jeton pour le nouveau, utilisateur authentifié?

J'ai injecter une nouvelle GenericalPrincipal avec une coutume IIdentity sur chaque Application_AuthenticateRequest donc, le temps que @Html.AntiForgeryToken() est appelée HttpContext.Current.User.Identity est, en fait, mon Identité personnalisée avec IsAuthenticated propriété a la valeur true et encore @Html.AntiForgeryToken encore semble rendre un jeton pour l'ancien utilisateur, sauf si je fais un rechargement de la page.

  • Pouvez-vous réellement vérifier que l' @Html.AntiForgeryToken code est appelé sans recharger?
  • Il est certainement, je peux le succès de la pause pour mission d'inspecter HttpContext.Actuel.L'utilisateur de l'objet, comme je l'ai mentionné
  • Veuillez vous référer à ceci: stackoverflow.com/a/19471680/193634
  • pourriez-vous nous dire quelle option avez-vous aller dans la réponse ci-dessous.
  • Je crois que j'ai fait une exception pour aller avec un rechargement complet si je me souviens bien. Mais je m'attends à rencontrer ce problème très bientôt dans un nouveau projet. Nouveau si j'opte avec un meilleur option.
InformationsquelleAutor parliament | 2013-02-20