diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs index 999e9e3fb3..da3234d22c 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationPolicyProvider.cs @@ -24,7 +24,6 @@ namespace Volo.Abp.Authorization var permission = _permissionDefinitionManager.GetOrNull(policyName); if (permission == null) - { return await base.GetPolicyAsync(policyName); } diff --git a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs index de489c86a3..4e6bf097bb 100644 --- a/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs +++ b/src/Volo.Abp.Authorization/Volo/Abp/Authorization/MethodInvocationAuthorizationService.cs @@ -16,7 +16,10 @@ namespace Volo.Abp.Authorization public async Task CheckAsync(MethodInvocationAuthorizationContext context) { - //TODO: Fully implement! (allow anonymous... etc.) + if (AllowAnonymous(context)) + { + return; + } var authorizationAttributes = GetAuthorizationDataAttributes(context); foreach (var authorizationAttribute in authorizationAttributes) @@ -25,6 +28,11 @@ namespace Volo.Abp.Authorization } } + protected virtual bool AllowAnonymous(MethodInvocationAuthorizationContext context) + { + return context.Method.GetCustomAttributes(true).OfType().Any(); + } + protected virtual IAuthorizeData[] GetAuthorizationDataAttributes(MethodInvocationAuthorizationContext context) { return context.Method