protected override async Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) { if (context.HasSucceeded) { // This handler is not revoking any pre-existing grants. return; } var claims = new HashSet <Claim>(); foreach (var claim in _anonymousClaims ??= await GetRoleClaimsAsync("Anonymous")) { claims.Add(claim); } if (context.User.Identity.IsAuthenticated) { foreach (var claim in _authenticatedClaims ??= await GetRoleClaimsAsync("Authenticated")) { claims.Add(claim); } } if (_permissionGrantingService.IsGranted(requirement, claims)) { context.Succeed(requirement); return; } }
protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, PermissionRequirement requirement) { if (context.HasSucceeded || !(context?.User?.Identity?.IsAuthenticated ?? false)) { return(Task.CompletedTask); } else if (_permissionGrantingService.IsGranted(requirement, context.User.Claims)) { context.Succeed(requirement); } return(Task.CompletedTask); }