Skip to content

ClientRequest Class

The client-authentication context carried alongside a token, revocation or introspection request - the form-posted secret/assertion, the Authorization header, the mTLS client certificate and the DPoP proof. The bound properties, BindAsync and the projection onto the core model are generated from ClientRequest by the Minimal API model source generator.

C#
public record ClientRequest : System.IEquatable<Abblix.Oidc.Server.MinimalApi.Model.ClientRequest>

Inheritance System.Object → ClientRequest

Implements System.IEquatable<ClientRequest>

Properties

ClientRequest.AuthorizationHeader Property

The HTTP Authorization header from the inbound request, captured for transport-level authentication schemes such as Basic (client_secret_basic) or Bearer. Not serialized.

C#
public System.Net.Http.Headers.AuthenticationHeaderValue? AuthorizationHeader { get; init; }

Property Value

System.Net.Http.Headers.AuthenticationHeaderValue

ClientRequest.ClientAssertion Property

The client_assertion: a signed JWT used to authenticate the client via private_key_jwt or client_secret_jwt (RFC 7523 §2.2, OIDC Core §9).

C#
public string? ClientAssertion { get; init; }

Property Value

System.String

ClientRequest.ClientAssertionType Property

The client_assertion_type, which for JWT bearer client assertions equals urn:ietf:params:oauth:client-assertion-type:jwt-bearer per RFC 7521 §4.2 / RFC 7523 §2.2.

C#
public string? ClientAssertionType { get; init; }

Property Value

System.String

ClientRequest.ClientCertificate Property

The client X.509 certificate presented via mutual TLS (mTLS) at the transport layer or forwarded by a trusted reverse proxy. Used for RFC 8705 client authentication and for certificate-bound access tokens.

C#
public System.Security.Cryptography.X509Certificates.X509Certificate2? ClientCertificate { get; init; }

Property Value

System.Security.Cryptography.X509Certificates.X509Certificate2

ClientRequest.ClientId Property

The OAuth 2.0 client_id identifying the registered client (RFC 6749 §2.3.1). May be null when the client is identified solely by an Authorization header or a client assertion.

C#
public string? ClientId { get; init; }

Property Value

System.String

ClientRequest.ClientSecret Property

The OAuth 2.0 client_secret presented in the request body for the client_secret_post authentication method (RFC 6749 §2.3.1).

C#
public string? ClientSecret { get; init; }

Property Value

System.String

ClientRequest.DPoPProof Property

The compact-form DPoP proof JWT taken from the inbound request's DPoP header per RFC 9449 §4.1. Travels alongside AuthorizationHeader and ClientCertificate as transport-level material so the core layer stays ASP.NET-Core-free; the MVC binder lifts it from the header. null when no proof was presented.

C#
public string? DPoPProof { get; init; }

Property Value

System.String

Methods

ClientRequest.BindAsync(HttpContext) Method

Binds the model from the request's form, query, headers and TLS connection.

C#
public static System.Threading.Tasks.ValueTask<Abblix.Oidc.Server.MinimalApi.Model.ClientRequest?> BindAsync(Microsoft.AspNetCore.Http.HttpContext context);

Parameters

context Microsoft.AspNetCore.Http.HttpContext

Returns

System.Threading.Tasks.ValueTask<ClientRequest>

Operators

ClientRequest.implicit operator ClientRequest(ClientRequest) Operator

Projects the transport-bound model onto its core counterpart.

C#
public static Abblix.Oidc.Server.Model.ClientRequest implicit operator Abblix.Oidc.Server.Model.ClientRequest(Abblix.Oidc.Server.MinimalApi.Model.ClientRequest request);

Parameters

request ClientRequest

Returns

ClientRequest