Class AspNetAuthorizationPolicyRuntime
- Namespace
- Cratis.Arc.Authorization
- Assembly
- Cratis.Arc.dll
Evaluates ASP.NET Core policies and authentication schemes alongside native Arc policies.
public class AspNetAuthorizationPolicyRuntime : IAuthorizationPolicyRuntime, IAuthorizationEmissionRuntime
- Inheritance
-
AspNetAuthorizationPolicyRuntime
- Implements
- Inherited Members
- Extension Methods
Constructors
AspNetAuthorizationPolicyRuntime(ArcAuthorizationPolicyRuntime)
Initializes the runtime with no ASP.NET Core anonymous policy opt-ins.
public AspNetAuthorizationPolicyRuntime(ArcAuthorizationPolicyRuntime native)
Parameters
nativeArcAuthorizationPolicyRuntimeThe native Arc policy runtime.
AspNetAuthorizationPolicyRuntime(ArcAuthorizationPolicyRuntime, IEnumerable<AnonymousAspNetAuthorizationPolicyRegistration>)
Evaluates ASP.NET Core policies and authentication schemes alongside native Arc policies.
public AspNetAuthorizationPolicyRuntime(ArcAuthorizationPolicyRuntime native, IEnumerable<AnonymousAspNetAuthorizationPolicyRegistration> anonymousPolicies)
Parameters
nativeArcAuthorizationPolicyRuntimeNative Arc policy resolution.
anonymousPoliciesIEnumerable<AnonymousAspNetAuthorizationPolicyRegistration>Explicit anonymous policy opt-ins.
Methods
BeginEmissionScope(ClaimsPrincipal, IServiceProvider, bool)
Begins a native operation-local context. Hub subscriptions suppress native HTTP after admission; direct streams may use their still-live request context.
public IDisposable? BeginEmissionScope(ClaimsPrincipal principal, IServiceProvider services, bool hasLiveRequest)
Parameters
principalClaimsPrincipalThe subscriber principal.
servicesIServiceProviderThe emission provider.
hasLiveRequestboolWhether the originating HTTP request is still alive.
Returns
- IDisposable
A scope restoring the producer's native context.
BeginPrincipalScope(ClaimsPrincipal, IServiceProvider)
Makes the selected identity visible to the active host request for the duration of authorized execution.
public IDisposable? BeginPrincipalScope(ClaimsPrincipal principal, IServiceProvider services)
Parameters
principalClaimsPrincipalThe selected identity.
servicesIServiceProviderThe executing scope.
Returns
- IDisposable
A scope restoring the previous host identity, if the host has one.
CaptureLiveRequest(IServiceProvider)
Captures only a still-live direct request so later emissions can build isolated native HTTP facades. The returned delegate must not be retained after that request completes.
public Func<ClaimsPrincipal, IServiceProvider, IDisposable?>? CaptureLiveRequest(IServiceProvider services)
Parameters
servicesIServiceProviderThe admitting request provider.
Returns
- Func<ClaimsPrincipal, IServiceProvider, IDisposable>
An operation-local scope factory, or null when no native request is available.
Resolve(IReadOnlyList<AuthorizationRequirement>, IServiceProvider, CancellationToken)
Resolves and validates policies and schemes once for an admission attempt.
public Task<IAuthorizationPolicyResolution> Resolve(IReadOnlyList<AuthorizationRequirement> requirements, IServiceProvider services, CancellationToken cancellationToken)
Parameters
requirementsIReadOnlyList<AuthorizationRequirement>The effective requirements.
servicesIServiceProviderThe executing service scope.
cancellationTokenCancellationTokenCancellation.
Returns
- Task<IAuthorizationPolicyResolution>
A stable operation-local policy resolution.
Validate(IReadOnlyList<AuthorizationRequirement>, IServiceProvider, CancellationToken)
Validates every requirement before admission or startup.
public Task Validate(IReadOnlyList<AuthorizationRequirement> requirements, IServiceProvider services, CancellationToken cancellationToken)
Parameters
requirementsIReadOnlyList<AuthorizationRequirement>The requirements.
servicesIServiceProviderThe current service scope.
cancellationTokenCancellationTokenCancellation.
Returns
- Task
The validation operation.