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

## ClientValidator Class

Validates the client in a device authorization request\.

```csharp
public class ClientValidator : Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator
```

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

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

## ClientValidator\(IClientAuthenticator\) Constructor {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.ClientValidator.ClientValidator(Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator)}

Validates the client in a device authorization request\.

```csharp
public ClientValidator(Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator clientAuthenticator);
```
#### Parameters

###### `clientAuthenticator` [IClientAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.IClientAuthenticator') {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.ClientValidator.ClientValidator(Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator).clientAuthenticator}

The service used to authenticate clients\.
### Methods

## ClientValidator\.ValidateAsync\(DeviceAuthorizationValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.ClientValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext)}

Validates the device authorization request context\.

```csharp
public System.Threading.Tasks.Task<Abblix.Oidc.Server.Common.OidcError?> ValidateAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext context);
```
#### Parameters

###### `context` [DeviceAuthorizationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.DeviceAuthorizationValidationContext') {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.ClientValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext).context}

The validation context containing the request and client information\.

Implements [ValidateAsync\(DeviceAuthorizationValidationContext\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext) 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.IDeviceAuthorizationContextValidator\.ValidateAsync\(Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.DeviceAuthorizationValidationContext\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[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/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
An OIDC error if validation fails, or null if validation succeeds\.
