#### [Abblix\.Oidc\.Server\.MinimalApi](https://www.abblix.com/en/docs/api/abblix-oidc-server-minimalapi 'index')
### [Abblix\.Oidc\.Server\.MinimalApi\.Model](https://www.abblix.com/en/docs/api/abblix-oidc-server-minimalapi/Abblix.Oidc.Server.MinimalApi.Model 'Abblix\.Oidc\.Server\.MinimalApi\.Model')

## 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](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest') by the Minimal API model source generator\.

```csharp
public record ClientRequest : System.IEquatable<Abblix.Oidc.Server.MinimalApi.Model.ClientRequest>
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → ClientRequest

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-minimalapi/Abblix.Oidc.Server.MinimalApi.Model.ClientRequest 'Abblix\.Oidc\.Server\.MinimalApi\.Model\.ClientRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Properties

## ClientRequest\.AuthorizationHeader Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.AuthorizationHeader}

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

```csharp
public System.Net.Http.Headers.AuthenticationHeaderValue? AuthorizationHeader { get; init; }
```

#### Property Value
[System\.Net\.Http\.Headers\.AuthenticationHeaderValue](https://learn.microsoft.com/en-us/dotnet/api/system.net.http.headers.authenticationheadervalue 'System\.Net\.Http\.Headers\.AuthenticationHeaderValue')

## ClientRequest\.ClientAssertion Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.ClientAssertion}

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\)\.

```csharp
public string? ClientAssertion { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientRequest\.ClientAssertionType Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.ClientAssertionType}

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\.

```csharp
public string? ClientAssertionType { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientRequest\.ClientCertificate Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.ClientCertificate}

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\.

```csharp
public System.Security.Cryptography.X509Certificates.X509Certificate2? ClientCertificate { get; init; }
```

#### Property Value
[System\.Security\.Cryptography\.X509Certificates\.X509Certificate2](https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.x509certificates.x509certificate2 'System\.Security\.Cryptography\.X509Certificates\.X509Certificate2')

## ClientRequest\.ClientId Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.ClientId}

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\.

```csharp
public string? ClientId { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientRequest\.ClientSecret Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.ClientSecret}

The OAuth 2\.0 `client_secret` presented in the request body for the
`client_secret_post` authentication method \(RFC 6749 §2\.3\.1\)\.

```csharp
public string? ClientSecret { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## ClientRequest\.DPoPProof Property {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.DPoPProof}

The compact\-form DPoP proof JWT taken from the inbound request's `DPoP` header
per RFC 9449 §4\.1\. Travels alongside [AuthorizationHeader](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest#Abblix.Oidc.Server.Model.ClientRequest.AuthorizationHeader 'Abblix\.Oidc\.Server\.Model\.ClientRequest\.AuthorizationHeader') and
[ClientCertificate](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest#Abblix.Oidc.Server.Model.ClientRequest.ClientCertificate 'Abblix\.Oidc\.Server\.Model\.ClientRequest\.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\.

```csharp
public string? DPoPProof { get; init; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')
### Methods

## ClientRequest\.BindAsync\(HttpContext\) Method {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.BindAsync(Microsoft.AspNetCore.Http.HttpContext)}

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

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

###### `context` [Microsoft\.AspNetCore\.Http\.HttpContext](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.httpcontext 'Microsoft\.AspNetCore\.Http\.HttpContext') {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.BindAsync(Microsoft.AspNetCore.Http.HttpContext).context}

#### Returns
[System\.Threading\.Tasks\.ValueTask&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.valuetask-1 'System\.Threading\.Tasks\.ValueTask\`1')[ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-minimalapi/Abblix.Oidc.Server.MinimalApi.Model.ClientRequest 'Abblix\.Oidc\.Server\.MinimalApi\.Model\.ClientRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.valuetask-1 'System\.Threading\.Tasks\.ValueTask\`1')
### Operators

## ClientRequest\.implicit operator ClientRequest\(ClientRequest\) Operator {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.op_ImplicitAbblix.Oidc.Server.Model.ClientRequest(Abblix.Oidc.Server.MinimalApi.Model.ClientRequest)}

Projects the transport\-bound model onto its core counterpart\.

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

###### `request` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-minimalapi/Abblix.Oidc.Server.MinimalApi.Model.ClientRequest 'Abblix\.Oidc\.Server\.MinimalApi\.Model\.ClientRequest') {#Abblix.Oidc.Server.MinimalApi.Model.ClientRequest.op_ImplicitAbblix.Oidc.Server.Model.ClientRequest(Abblix.Oidc.Server.MinimalApi.Model.ClientRequest).request}

#### Returns
[ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest')
