#### [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')

## IAuthorizationContextValidator Interface

Defines the contract for a validator in an authorization context\.
Implementations of this interface should provide logic for validating
authorization requests\.

```csharp
public interface IAuthorizationContextValidator
```

Derived  
↳ [AuthorizationContextValidatorComposite](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationContextValidatorComposite 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.AuthorizationContextValidatorComposite')  
↳ [AuthorizationDetailsRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationDetailsRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.AuthorizationDetailsRequestValidator')  
↳ [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')  
↳ [NonceValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.NonceValidator 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.NonceValidator')  
↳ [PkceValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.PkceValidator 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.PkceValidator')  
↳ [SyncAuthorizationContextValidatorBase](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.SyncAuthorizationContextValidatorBase 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.SyncAuthorizationContextValidatorBase')
### Methods

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

Asynchronously validates an authorization request within a given context\.

```csharp
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.IAuthorizationContextValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext).context}

The [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') that contains the details
of the authorization request to be validated\.

#### 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')  
A task that represents the asynchronous validation operation\. The task result contains
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 a validation error is found,
or null if validation is successful\.
