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

## ClientValidator Class

Validates the client specified in the authorization request\.
This class checks whether the client is registered and authorized to perform the request,
as part of the authorization validation process\. It plays a crucial role in ensuring that
only valid and authorized clients can initiate authorization requests\.

```csharp
public class ClientValidator : Abblix.Oidc.Server.Endpoints.Authorization.Validation.IAuthorizationContextValidator
```

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

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

## ClientValidator\(ILogger\<ClientValidator\>, IClientInfoProvider\) Constructor {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator.ClientValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator_,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider)}

Validates the client specified in the authorization request\.
This class checks whether the client is registered and authorized to perform the request,
as part of the authorization validation process\. It plays a crucial role in ensuring that
only valid and authorized clients can initiate authorization requests\.

```csharp
public ClientValidator(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator> logger, Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider clientInfoProvider);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[ClientValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.ClientValidator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator.ClientValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator_,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider).logger}

The logger to be used for recording validation activities and outcomes\.

###### `clientInfoProvider` [IClientInfoProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientInfoProvider') {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator.ClientValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator_,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider).clientInfoProvider}

The provider used to retrieve information about clients\.
### Methods

## ClientValidator\.ValidateAsync\(AuthorizationValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.ClientValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext)}

Asynchronously validates the client specified in the authorization request\.
Ensures the client is recognized and authorized to make the request\.

```csharp
public System.Threading.Tasks.Task<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError?> ValidateAsync(Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext context);
```
#### Parameters

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

The validation context containing details of the authorization request and client information\.

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

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[AuthorizationRequestValidationError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationRequestValidationError')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
An [AuthorizationRequestValidationError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationRequestValidationError') if the client is not found or not authorized,
or null if the client is valid\.
