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 fb35d142cb..7a34598a66 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -1,23 +1,21 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.DependencyInjection; using Volo.Abp.DependencyInjection; namespace Volo.Abp.Authorization { public class MethodInvocationAuthorizationService : IMethodInvocationAuthorizationService, ITransientDependency { - private readonly IAbpAuthorizationPolicyProvider _abpAuthorizationPolicyProvider; - private readonly IAbpAuthorizationService _abpAuthorizationService; + private readonly IServiceProvider _serviceProvider; - public MethodInvocationAuthorizationService( - IAbpAuthorizationPolicyProvider abpAuthorizationPolicyProvider, - IAbpAuthorizationService abpAuthorizationService) + public MethodInvocationAuthorizationService(IServiceProvider serviceProvider) { - _abpAuthorizationPolicyProvider = abpAuthorizationPolicyProvider; - _abpAuthorizationService = abpAuthorizationService; + _serviceProvider = serviceProvider; } public async Task CheckAsync(MethodInvocationAuthorizationContext context) @@ -28,7 +26,7 @@ namespace Volo.Abp.Authorization } var authorizationPolicy = await AuthorizationPolicy.CombineAsync( - _abpAuthorizationPolicyProvider, + _serviceProvider.GetRequiredService(), GetAuthorizationDataAttributes(context.Method) ); @@ -36,8 +34,8 @@ namespace Volo.Abp.Authorization { return; } - - await _abpAuthorizationService.CheckAsync(authorizationPolicy); + + await _serviceProvider.GetRequiredService().CheckAsync(authorizationPolicy); } protected virtual bool AllowAnonymous(MethodInvocationAuthorizationContext context) @@ -64,4 +62,4 @@ namespace Volo.Abp.Authorization return attributes; } } -} \ No newline at end of file +}