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

## ClientRequest Class

The transport\-bound counterpart of [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest'): the client authentication
material accompanying back\-channel endpoint payloads\. The body\-level credential parameters, the
header and TLS\-connection sources resolved from the core transport\-source markers, and the
projection back onto the core model are generated from the core type\.

```csharp
public record ClientRequest : System.IEquatable<Abblix.Oidc.Server.Mvc.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-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Properties

## ClientRequest\.AuthorizationHeader Property {#Abblix.Oidc.Server.Mvc.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.Mvc.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.Mvc.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.Mvc.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.Mvc.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.Mvc.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.Mvc.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\.Map\(\) Method {#Abblix.Oidc.Server.Mvc.Model.ClientRequest.Map()}

Projects the transport\-bound model onto its core counterpart, copying every bound
parameter so the core pipeline operates on a transport\-agnostic shape\.

```csharp
public Abblix.Oidc.Server.Model.ClientRequest Map();
```

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

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

Implicit form of [Map\(\)](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest#Abblix.Oidc.Server.Mvc.Model.ClientRequest.Map() 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest\.Map\(\)'), letting a bound model flow into any
core\-typed parameter or variable without an explicit call\.

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

###### `request` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest') {#Abblix.Oidc.Server.Mvc.Model.ClientRequest.op_ImplicitAbblix.Oidc.Server.Model.ClientRequest(Abblix.Oidc.Server.Mvc.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')
