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

native ArcAuthorizationPolicyRuntime

The 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

native ArcAuthorizationPolicyRuntime

Native Arc policy resolution.

anonymousPolicies IEnumerable<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

principal ClaimsPrincipal

The subscriber principal.

services IServiceProvider

The emission provider.

hasLiveRequest bool

Whether 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

principal ClaimsPrincipal

The selected identity.

services IServiceProvider

The 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

services IServiceProvider

The 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

requirements IReadOnlyList<AuthorizationRequirement>

The effective requirements.

services IServiceProvider

The executing service scope.

cancellationToken CancellationToken

Cancellation.

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

requirements IReadOnlyList<AuthorizationRequirement>

The requirements.

services IServiceProvider

The current service scope.

cancellationToken CancellationToken

Cancellation.

Returns

Task

The validation operation.