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

## BackChannelAuthenticationRequestValidator Class

Validates backchannel authentication requests by delegating the context validation to a context validator\.
This class is responsible for ensuring that the request meets all necessary criteria for successful authentication
within the backchannel authentication flow\.

```csharp
public class BackChannelAuthenticationRequestValidator : Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationRequestValidator
```

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

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

## BackChannelAuthenticationRequestValidator\(IBackChannelAuthenticationContextValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.BackChannelAuthenticationRequestValidator.BackChannelAuthenticationRequestValidator(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.IBackChannelAuthenticationContextValidator)}

Validates backchannel authentication requests by delegating the context validation to a context validator\.
This class is responsible for ensuring that the request meets all necessary criteria for successful authentication
within the backchannel authentication flow\.

```csharp
public BackChannelAuthenticationRequestValidator(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.IBackChannelAuthenticationContextValidator contextValidator);
```
#### Parameters

###### `contextValidator` [IBackChannelAuthenticationContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.IBackChannelAuthenticationContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Validation\.IBackChannelAuthenticationContextValidator') {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.BackChannelAuthenticationRequestValidator.BackChannelAuthenticationRequestValidator(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Validation.IBackChannelAuthenticationContextValidator).contextValidator}

The context validator responsible for performing detailed validation of the request\.
### Methods

## BackChannelAuthenticationRequestValidator\.ValidateAsync\(BackChannelAuthenticationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.BackChannelAuthenticationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Validates the specified backchannel authentication request\.
This method creates a validation context from the request and client information,
then uses the context validator to perform the validation\.

If validation succeeds, a [ValidBackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Interfaces\.ValidBackChannelAuthenticationRequest') is returned;
otherwise, the corresponding validation error is returned\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(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.BackChannelAuthenticationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest).request}

The backchannel authentication request to be validated\.

###### `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.BackChannelAuthenticationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

The client request associated with the backchannel authentication request\.

Implements [ValidateAsync\(BackChannelAuthenticationRequest, ClientRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationRequestValidator#Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Model.ClientRequest) 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Interfaces\.IBackChannelAuthenticationRequestValidator\.ValidateAsync\(Abblix\.Oidc\.Server\.Model\.BackChannelAuthenticationRequest, Abblix\.Oidc\.Server\.Model\.ClientRequest\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[ValidBackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.ValidBackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Interfaces\.ValidBackChannelAuthenticationRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns a [Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2'),
which can be either a valid request or an error, depending on the outcome of the validation\.
