2017-09-30 12 views
0

Voici 2 réponse cookie dans ma fonction de projet:j'ai eu un problème quand je l'aide ValidateAntiForgeryTokenAttribute

var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 
_httpContext.Response.Cookies.Add(cookie); 
var cookie_new=new HttpCookie(new HttpCookie("test","vote")); 
_httpContext.Response.Cookies.Add(cookie); 

Le projet utilise l'autorisation de l'utilisateur, mais quand je l'aide du premier cookie envoi AJAX [type = "post '' à une action, je prends une erreur msg dit

"Un jeton anti-falsification requis n'a pas été fourni ou était invalide.".

Cependant, l'autre est un succès. Je ne comprends pas quel est le problème.

+0

Suppression des étiquettes du titre; la capitalisation des acronymes; grammaire; réduction de bruit; disposition. – rene

Répondre

0

L'attribut ValidateAntiForgeryToken doit être ajouté à l'action dans votre contrôleur, comme ceci:

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult MyAction() 
{ 
... 
} 

Mais vous devez également fournir un contrôle sur le formulaire de tenir le jeton anti-contrefaçon dans la vue en ajoutant:

@Html.AntiForgeryToken() 

Si vous examinez la source de la vue rendue page, vous devriez voir un __RequestVerificationToken dans un caché input, ainsi que sa valeur.

+0

que ce que je fais, mais pas utile. Après avoir ajouté le premier cookie, les actions de cette page étaient erronées. Et cela devrait fonctionner à moins que je ne supprime [ValidateAntiForgeryToken] de l'action. –