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

## IClientRequestValidator Interface

Validates a request against the client configuration endpoint \(RFC 7592 §2\-§4\)\.
Confirms that the bearer registration access token authorizes the operation on the
referenced `client_id` and that the client still exists\.

```csharp
public interface IClientRequestValidator
```

Derived  
↳ [ClientRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.ClientRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.ClientRequestValidator')
### Methods

## IClientRequestValidator\.ValidateAsync\(ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.IClientRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.ClientRequest)}

Validates the request, returning the resolved [ValidClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ValidClientRequest 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.ValidClientRequest') on success
or an [OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError') describing the rejection\.

```csharp
System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ValidClientRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.ClientRequest request);
```
#### Parameters

###### `request` [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.DynamicClientManagement.Interfaces.IClientRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.ClientRequest).request}

The client management request to validate\.

#### 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')[ValidClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DynamicClientManagement.Interfaces.ValidClientRequest 'Abblix\.Oidc\.Server\.Endpoints\.DynamicClientManagement\.Interfaces\.ValidClientRequest')[,](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')
