2using System.Collections.Generic;
4using System.Threading.Tasks;
6using Microsoft.AspNetCore.Authorization;
26 readonly Func<Security.IAuthorizationService, ValueTask<TResult>>
getResponse;
38#pragma warning disable CA1000
40#pragma warning restore CA1000
43 () => ValueTask.FromResult(result));
51 Func<ValueTask<IAuthorizationRequirement?>> getRequirement,
54 ArgumentNullException.ThrowIfNull(getRequirement);
58 var requirement = await getRequirement();
59 if (requirement ==
null)
62 return new List<IAuthorizationRequirement>
92 Func<IAuthorizationRequirement?> getRequirement,
96 ArgumentNullException.ThrowIfNull(getRequirement);
100 var requirement = getRequirement();
101 if (requirement ==
null)
104 return ValueTask.FromResult<IEnumerable<IAuthorizationRequirement>>(
105 new List<IAuthorizationRequirement>
122 Func<IAuthorizationRequirement?> getRequirement,
123 Func<Security.IAuthorizationService, ValueTask<TResult>>
getResponse)
125 ArgumentNullException.ThrowIfNull(getRequirement);
128 var requirement = getRequirement();
129 if (requirement ==
null)
132 return ValueTask.FromResult<IEnumerable<IAuthorizationRequirement>>(
133 new List<IAuthorizationRequirement>
160 public ValueTask<TResult>
Execute(Security.IAuthorizationService authorizationService)
Evaluates a set of IAuthorizationRequirements to be checked before executing a response.
readonly Func< Security.IAuthorizationService, ValueTask< TResult > > getResponse
The response generation function.
RequirementsGated(Func< IAuthorizationRequirement?> getRequirement, Func< Security.IAuthorizationService, ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
RequirementsGated(Func< ValueTask< IAuthorizationRequirement?> > getRequirement, Func< ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
static RequirementsGated< TResult > FromResult(TResult result)
Convert a given result into a RequirementsGated<TResult>.
readonly Func< ValueTask< IEnumerable< IAuthorizationRequirement > > > getRequirements
The IAuthorizationRequirement retrieval function. UserSessionValidRequirement is included automatical...
RequirementsGated(Func< IEnumerable< IAuthorizationRequirement > > getRequirements, Func< ValueTask< TResult > > getResponse)
Initializes a new instance of the RequirementsGated<TResult> class.
RequirementsGated(Func< IAuthorizationRequirement?> getRequirement, Func< ValueTask< TResult > > getResponse, bool doNotAddUserSessionValidRequirement=false)
Initializes a new instance of the RequirementsGated<TResult> class.
async ValueTask< IEnumerable< IAuthorizationRequirement > > GetRequirements()
Evaluates the IAuthorizationRequirements of the request.
ValueTask< TResult > Execute(Security.IAuthorizationService authorizationService)
Executes the request.
readonly bool doNotAddUserSessionValidRequirement
If the UserSessionValidRequirement should not be added.
IAuthorizationRequirement for testing if a user is enabled and their session is valid.
static IEnumerable< UserSessionValidRequirement > InstanceAsEnumerable
The singleton instance of this class.