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 ?

241voto

webdeveloper Points 8205

Vous avez [ValidateAntiForgeryToken] avant votre action. Vous devez également ajouter @Html.AntiForgeryToken() dans votre formulaire.

12 votes

J'ai une page web qui a le même problème mais l'ensemble des éléments est correct.

0 votes

@ConductedClever Vous devriez vérifier soigneusement tout (champs, cookies) avec fiddler et/ou firebug (n'importe quel outil de développement de navigateur), regardez cet article : asp.net/web-api/overview/security/

0 votes

@ConductedClever moi aussi. C'est le travail mais j'obtiens rarement cette erreur et je n'ai aucune idée de pourquoi ?

88voto

Justin Skiles Points 2885

Dans mon cas, j'avais ceci dans mon web.config :

<httpCookies requireSSL="true" />

Mais mon projet a été configuré pour ne pas utiliser SSL. Le fait de commenter cette ligne ou de configurer le projet pour qu'il utilise toujours SSL a permis de résoudre le problème.

68voto

Niladri Sarkar Points 181

Comme ceci :

Le contrôleur

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult MethodName(FormCollection formCollection)
{
     ...
     Code Block
     ...
}

Le point de vue :

@using(Html.BeginForm())
{
     @Html.AntiForgeryToken()
     <input name="..." type="text" />
     // rest
}

0 votes

Essayez de n'utiliser que dans HTML

43voto

Haiping Fan Points 89

Veillez également à ne pas utiliser [ValidateAntiForgeryToken] sous [HttpGet].

  [HttpGet]
  public ActionResult MethodName()
  {
  ..
  }

1 votes

Cette réponse complète les autres et résout mon problème ! Merci de votre compréhension.

2 votes

Cette réponse suppose que vous n'enregistrez pas les données soumises (ce qui ne devrait pas être le cas avec un HttpGet). Si c'est le cas, vous avez toujours besoin de la protection XSRF fournie par [ValidateAntiForgeryToken].

11voto

Vijay Points 360

Vous recevrez l'erreur même si les cookies ne sont pas activés.

2 votes

Bon coup. J'utilisais Internet Explorer. L'utilisation du navigateur Chrome a résolu le problème pour moi

0 votes

Cela a résolu mon problème aussi, en activant les cookies dans google chrome. Merci de votre compréhension.

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