diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index 7a34598a66..eec672e718 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -11,11 +11,15 @@ namespace Volo.Abp.Authorization { public class MethodInvocationAuthorizationService : IMethodInvocationAuthorizationService, ITransientDependency { - private readonly IServiceProvider _serviceProvider; + private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider; + private readonly IAbpAuthorizationService _abpAuthorizationService; - public MethodInvocationAuthorizationService(IServiceProvider serviceProvider) + public MethodInvocationAuthorizationService( + IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider, + IAbpAuthorizationService abpAuthorizationService) { - _serviceProvider = serviceProvider; + _abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; + _abpAuthorizationService = abpAuthorizationService; } public async Task CheckAsync(MethodInvocationAuthorizationContext context) @@ -26,7 +30,7 @@ namespace Volo.Abp.Authorization } var authorizationPolicy = await AuthorizationPolicy.CombineAsync( - _serviceProvider.GetRequiredService(), + _abpAuthorizationPolicyProvider, GetAuthorizationDataAttributes(context.Method) ); @@ -35,7 +39,7 @@ namespace Volo.Abp.Authorization return; } - await _serviceProvider.GetRequiredService().CheckAsync(authorizationPolicy); + await _abpAuthorizationService.CheckAsync(authorizationPolicy); } protected virtual bool AllowAnonymous(MethodInvocationAuthorizationContext context)