3using System.Threading.Tasks;
5using Microsoft.AspNetCore.Authorization;
32 Authority = authority ??
throw new ArgumentNullException(nameof(authority));
37 async ValueTask<IQueryable<TResult>?>
IAuthorityInvoker<TAuthority>.InvokeQueryable<TResult>(Func<TAuthority, RequirementsGated<IQueryable<TResult>>> authorityInvoker)
39 ArgumentNullException.ThrowIfNull(authorityInvoker);
41 var requirementsGate = authorityInvoker(
Authority);
42 return await ExecuteIfRequirementsSatisfied(requirementsGate);
54 var requirements = await requirementsGate.GetRequirements();
55 var authorizationResult = await
authorizationService.AuthorizeAsync(requirements, requirementsGate.InstanceId);
57 if (!authorizationResult.Succeeded)
TAuthority Authority
The IAuthority being invoked.
readonly Security.IAuthorizationService authorizationService
The authorization service for the AuthorityInvokerBase<TAuthority>.
virtual void OnRequirementsFailure(AuthorizationFailure authFailure)
Called to handle generic behavior when requirements evaluation fails.
AuthorityInvokerBase(TAuthority authority, Security.IAuthorizationService authorizationService)
Initializes a new instance of the AuthorityInvokerBase<TAuthority> class.
async ValueTask< TResult?> ExecuteIfRequirementsSatisfied< TResult >(RequirementsGated< TResult > requirementsGate)
Unwrap a RequirementsGated<TResult> result, returning null if the requirements weren't satisfied.
Evaluates a set of IAuthorizationRequirements to be checked before executing a response.
Business logic for interating with the server.
Interface for evaluating IAuthorizationRequirements.