156 votes

Le champ obligatoire du formulaire anti-falsification "__RequestVerificationToken" n'est pas présent Erreur lors de l'enregistrement de l'utilisateur

J'utilise Membership.create l'erreur suivante se produit,

Le champ requis du formulaire anti-falsification "__RequestVerificationToken" n'est pas pas présent

Comment puis-je résoudre ce problème ?

4voto

Winnifred Points 36

Si quelqu'un rencontre l'erreur pour la même raison que moi, voici ma solution :

si vous aviez Html.AntiForgeryToken();

le remplacer par @Html.AntiForgeryToken()

4voto

Ogglas Points 1

J'ai obtenu cette erreur dans Chrome avec la connexion par défaut pour ASP.NET avec des comptes d'utilisateurs individuels.

.cshtml :

@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
    @Html.AntiForgeryToken()
    <h4>Use a local account to log in.</h4>

Contrôleur :

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)

Résolu en effaçant les données du site :

enter image description here

3voto

Michael Logutov Points 632

Dans mon cas, le domaine incorrect dans web.config pour les cookies était la raison :

<httpCookies domain=".wrong.domain.com" />

1voto

Doug Points 2296

Toutes les autres réponses sont également valables, mais si aucune d'entre elles ne résout le problème, il convient de vérifier que les en-têtes sont bien transmis au serveur.

Par exemple, dans un environnement à charge équilibrée avec nginx, la configuration par défaut est la suivante supprimer l'en-tête __RequestVerificationToken avant de transmettre la demande au serveur, voir : le proxy inverse simple de nginx semble dépouiller certains en-têtes

0voto

Goran Sneperger Points 57

Dans ma solution EPiServer, sur plusieurs contrôleurs, il y avait un attribut ContentOutputCache sur l'action Index qui acceptait HttpGet. Chaque vue pour ces actions contenait un formulaire qui postait dans une action HttpPost vers le même contrôleur ou vers un contrôleur différent. Dès que j'ai supprimé cet attribut de toutes ces actions Index, le problème a disparu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X