J'essayais d'utiliser ValidateAntiForgeryToken dans .Net Core mais je recevais le cookie .AspNetCore.Antiforgery.xxxxxxx manquant.
Qu'est-ce que ce cookie .AspNetCore.Antiforgery.xxxxxxx?
ASP.NET Core recherche ce cookie pour trouver le jeton X-CSRF.
ValidateAntiForgeryToken
est un filtre d'action qui fait que les requêtes effectuées sur les actions auxquelles ce filtre est appliqué seront bloquées, sauf si la requête comprend un jeton anti-corruption valide.
En général, ASP.NET Core peut rechercher le jeton dans le cookie ou l'en-tête. Vous pouvez donc avoir la situation lorsque
Par défaut, ASP.NET Core génère et attend un nom de cookie unique commençant par DefaultCookiePrefix (".AspNetCore.Antiforgery.").
Cela pourrait être annulé en utilisant une option anti-corruption CookieName
:
services.AddAntiforgery(options => options.CookieName = "X-CSRF-TOKEN-COOKIENAME");
Pour . Net Core 2.0.0 ou supérieur, il y aura des changements :
Pour cette utilisation, utilisez:
services.AddAntiforgery(options => options.Cookie.Name = "X-CSRF-TOKEN-COOKIENAME");
Si l'on parle d'en-tête, le nom pourrait être spécifié par:
services.AddAntiforgery(options => options.HeaderName = "X-XSRF-TOKEN");
Examiner: