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

## TokenContextValidatorComposite Class

Represents a composite validator for token context validation, executing a sequence of individual validators\.
This class allows multiple validators to be combined, each responsible for a specific validation step,
and short\-circuits the validation process if any step fails\.

```csharp
public class TokenContextValidatorComposite : Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator
```

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

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

## TokenContextValidatorComposite\(ITokenContextValidator\[\]\) Constructor {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenContextValidatorComposite.TokenContextValidatorComposite(Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator[])}

Represents a composite validator for token context validation, executing a sequence of individual validators\.
This class allows multiple validators to be combined, each responsible for a specific validation step,
and short\-circuits the validation process if any step fails\.

```csharp
public TokenContextValidatorComposite(Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator[] validators);
```
#### Parameters

###### `validators` [ITokenContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.Token\.Validation\.ITokenContextValidator')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenContextValidatorComposite.TokenContextValidatorComposite(Abblix.Oidc.Server.Endpoints.Token.Validation.ITokenContextValidator[]).validators}

An array of validators representing the steps in the validation process\.
### Methods

## TokenContextValidatorComposite\.ValidateAsync\(TokenValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenContextValidatorComposite.ValidateAsync(Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext)}

Asynchronously validates the token request by executing each validator in the sequence\.
The validation process stops at the first encountered error and returns it\.
If all validators succeed, the method returns null, indicating successful validation\.

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

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

The context containing the token request and related information
            that needs to be validated\.

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

#### 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')  
A [OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError') containing error details if any validation step fails;
otherwise, returns null indicating that all validation steps were successful\.
