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

## AuthorizationRequestValidator Class

Implements the Chain of Responsibility design pattern for processing authorization requests\.
This class delegates the validation of authorization requests to an [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'),
allowing a sequence of validators to handle the request in a decoupled manner\. Each validator in the chain
processes the request and potentially passes it along to the next validator\.

```csharp
public class AuthorizationRequestValidator : Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestValidator
```

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

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

## AuthorizationRequestValidator\(IAuthorizationContextValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationRequestValidator.AuthorizationRequestValidator(Abblix.Oidc.Server.Endpoints.Authorization.Validation.IAuthorizationContextValidator)}

Implements the Chain of Responsibility design pattern for processing authorization requests\.
This class delegates the validation of authorization requests to an [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'),
allowing a sequence of validators to handle the request in a decoupled manner\. Each validator in the chain
processes the request and potentially passes it along to the next validator\.

```csharp
public AuthorizationRequestValidator(Abblix.Oidc.Server.Endpoints.Authorization.Validation.IAuthorizationContextValidator validator);
```
#### Parameters

###### `validator` [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') {#Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationRequestValidator.AuthorizationRequestValidator(Abblix.Oidc.Server.Endpoints.Authorization.Validation.IAuthorizationContextValidator).validator}

The first validator in the chain to handle the authorization context\.
### Methods

## AuthorizationRequestValidator\.ValidateAsync\(AuthorizationRequest\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.AuthorizationRequest)}

Asynchronously validates an [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') by passing it through a chain of validators\.
The method creates a validation context and delegates the validation process to the initial validator in the chain,
which can then pass the request to subsequent validators as necessary\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError>> ValidateAsync(Abblix.Oidc.Server.Model.AuthorizationRequest request);
```
#### Parameters

###### `request` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.Authorization.AuthorizationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.AuthorizationRequest).request}

The authorization request to validate\.

Implements [ValidateAsync\(AuthorizationRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestValidator#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.AuthorizationRequest) 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestValidator\.ValidateAsync\(Abblix\.Oidc\.Server\.Model\.AuthorizationRequest\)')

#### 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')[ValidAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[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/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 [Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2') of [ValidAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest') on success
or [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') on failure, representing the outcome of
the validation process, which may be the result of processing by one or more validators in the chain\.
