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

## BackChannelAuthenticationValidationContext Class

Represents the context for validating a backchannel authentication request\.
This context encapsulates the details of the authentication request, allowing validators to perform
the necessary checks and validations according to the backchannel authentication flow\.

```csharp
public record BackChannelAuthenticationValidationContext : System.IEquatable<Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext>
```

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

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[BackChannelAuthenticationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Validation\.BackChannelAuthenticationValidationContext')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Constructors

## BackChannelAuthenticationValidationContext\(BackChannelAuthenticationRequest, ClientRequest\) Constructor {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.BackChannelAuthenticationValidationContext(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Represents the context for validating a backchannel authentication request\.
This context encapsulates the details of the authentication request, allowing validators to perform
the necessary checks and validations according to the backchannel authentication flow\.

```csharp
public BackChannelAuthenticationValidationContext(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest Request, Abblix.Oidc.Server.Model.ClientRequest ClientRequest);
```
#### Parameters

###### `Request` [BackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Model\.BackChannelAuthenticationRequest') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.BackChannelAuthenticationValidationContext(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest).Request}

The backchannel authentication request that is being validated\.
This request contains all the parameters and data needed for the validation process\.

###### `ClientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.BackChannelAuthenticationValidationContext(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest).ClientRequest}

The client request associated with the backchannel authentication request\. This contains the details of
the client making the request, such as client credentials and other relevant information\.
### Properties

## BackChannelAuthenticationValidationContext\.AuthorizationDetails Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.AuthorizationDetails}

RFC 9396 §3 Rich Authorization Requests array, populated after per\-client allowlist
and per\-type validator dispatch by [BackChannelAuthorizationDetailsValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthorizationDetailsValidator 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Validation\.BackChannelAuthorizationDetailsValidator')\.
The raw [System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray') survives forward to the grant unchanged\.
`null` when the request did not include `authorization_details`\.

```csharp
public System.Text.Json.Nodes.JsonArray? AuthorizationDetails { get; set; }
```

#### Property Value
[System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray')

## BackChannelAuthenticationValidationContext\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.ClientInfo}

Provides information about the client associated with the backchannel authentication request\.
This includes the client's identity, credentials, and any attributes relevant to the authentication process\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.ClientInfo ClientInfo { get; set; }
```

#### Property Value
[ClientInfo](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.ClientInfo 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.ClientInfo')

#### Exceptions

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
Thrown when attempting to access this property before it has been assigned a value\.

## BackChannelAuthenticationValidationContext\.ClientRequest Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.ClientRequest}

The client request associated with the backchannel authentication request\. This contains the details of
the client making the request, such as client credentials and other relevant information\.

```csharp
public Abblix.Oidc.Server.Model.ClientRequest ClientRequest { get; init; }
```

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

## BackChannelAuthenticationValidationContext\.ExpiresIn Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.ExpiresIn}

Specifies the expiration time for the backchannel authentication request\.
This value indicates how long the request is valid before it expires\.

```csharp
public System.TimeSpan ExpiresIn { get; set; }
```

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

## BackChannelAuthenticationValidationContext\.IdToken Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.IdToken}

Represents the ID token associated with the request, typically used to validate the identity of the user\.
This token is issued by the authorization server and can be used for user authentication or as a reference
during token validation\.

```csharp
public Abblix.Jwt.JsonWebToken? IdToken { get; set; }
```

#### Property Value
[JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken')

## BackChannelAuthenticationValidationContext\.LoginHintToken Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.LoginHintToken}

Represents the login hint token, which is an optional token used to provide hints about the user's identity
to streamline the authentication process\.
It may contain pre\-validated information, such as a subject identifier\.

```csharp
public Abblix.Jwt.JsonWebToken? LoginHintToken { get; set; }
```

#### Property Value
[JsonWebToken](https://www.abblix.com/en/docs/api/abblix-jwt/Abblix.Jwt.JsonWebToken 'Abblix\.Jwt\.JsonWebToken')

## BackChannelAuthenticationValidationContext\.Request Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.Request}

The backchannel authentication request that is being validated\.
This request contains all the parameters and data needed for the validation process\.

```csharp
public Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest Request { get; init; }
```

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

## BackChannelAuthenticationValidationContext\.Resources Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.Resources}

A collection of resource definitions requested as part of the authorization process\.
These resources specify the URIs that the client is requesting access to, enhancing the granularity
of resource\-level authorization\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources { get; set; }
```

#### Property Value
[ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## BackChannelAuthenticationValidationContext\.Scope Property {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.BackChannelAuthenticationValidationContext.Scope}

Represents the collection of scope definitions applicable to the authorization request\.
These scopes define the permissions and access levels that the client is requesting from
the authorization server\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scope { get; set; }
```

#### Property Value
[ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')
