Для встроенного ValidateAntiForgeryToken
вы не можете отключить его с помощью IgnoreAntiforgeryTokenAttribute
в Startup.cs
.Вы можете изменить Порядок исполнения по умолчанию .
В качестве обходного пути вы можете реализовать свой собственный ValidateAntiforgeryTokenAuthorizationFilter
, например
public class CustomValidateAntiforgeryTokenAuthorizationFilter : ValidateAntiforgeryTokenAuthorizationFilter
{
public CustomValidateAntiforgeryTokenAuthorizationFilter(IAntiforgery antiforgery, ILoggerFactory loggerFactory)
:base(antiforgery, loggerFactory)
{
}
protected override bool ShouldValidate(AuthorizationFilterContext context)
{
var filters = context.Filters;
if (filters.Where(f => f.GetType() == typeof(IgnoreAntiforgeryTokenAttribute)) != null)
{
return false;
}
else
{
return base.ShouldValidate(context);
}
}
}
, и зарегистрироваться по ValidateAntiforgeryTokenAuthorizationFilter
, например
services.AddMvc(options => {
options.Filters.Insert(0, new IgnoreAntiforgeryTokenAttribute());
options.Filters.Add(typeof(WebApiExceptionFilter)); // by type
});
services.AddScoped<ValidateAntiforgeryTokenAuthorizationFilter, CustomValidateAntiforgeryTokenAuthorizationFilter > ();