diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs index f1efac83ce..3097a3c725 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs @@ -95,14 +95,9 @@ namespace Volo.Abp.AspNetCore.Mvc } }); - var antiForgeryPreOptions = context.Services.ExecutePreConfiguredActions(); - var mvcCoreBuilder = context.Services.AddMvcCore(options => { - if (antiForgeryPreOptions.AutoValidate) - { - options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); - } + options.Filters.Add(new AbpAutoValidateAntiforgeryTokenAttribute()); }); context.Services.ExecutePreConfiguredActions(mvcCoreBuilder); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryOptions.cs index 1e21482981..f46763ab0c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryOptions.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Microsoft.AspNetCore.Http; namespace Volo.Abp.AspNetCore.Mvc.AntiForgery @@ -17,6 +18,11 @@ namespace Volo.Abp.AspNetCore.Mvc.AntiForgery /// public string AuthCookieSchemaName { get; set; } + /// + /// Default value: true. + /// + public bool AutoValidate { get; set; } = true; + public AbpAntiForgeryOptions() { TokenCookie = new CookieBuilder diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryPreOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryPreOptions.cs deleted file mode 100644 index 887153fd1b..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAntiForgeryPreOptions.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Volo.Abp.AspNetCore.Mvc.AntiForgery -{ - public class AbpAntiForgeryPreOptions - { - /// - /// Default value: true. - /// - public bool AutoValidate { get; set; } = true; - } -} \ No newline at end of file diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs index 04142d680e..40ed6fc509 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AntiForgery/AbpAutoValidateAntiforgeryTokenAuthorizationFilter.cs @@ -2,26 +2,35 @@ using System; using Microsoft.AspNetCore.Antiforgery; using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Mvc.AntiForgery { public class AbpAutoValidateAntiforgeryTokenAuthorizationFilter : AbpValidateAntiforgeryTokenAuthorizationFilter, ITransientDependency { + private readonly AbpAntiForgeryOptions _options; + public AbpAutoValidateAntiforgeryTokenAuthorizationFilter( IAntiforgery antiforgery, AbpAntiForgeryCookieNameProvider antiForgeryCookieNameProvider, + IOptions options, ILogger logger) : base( antiforgery, antiForgeryCookieNameProvider, logger) { - + _options = options.Value; } protected override bool ShouldValidate(AuthorizationFilterContext context) { + if (!_options.AutoValidate) + { + return false; + } + if (IsIgnoredHttpMethod(context)) { return false;