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

## DeviceAuthorizationValidatorComposite Class

Composes multiple device authorization context validators into a single validator\.
Executes validators in sequence until one returns an error or all pass\.

```csharp
public class DeviceAuthorizationValidatorComposite : Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator
```

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

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

## DeviceAuthorizationValidatorComposite\(IEnumerable\<IDeviceAuthorizationContextValidator\>\) Constructor {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidatorComposite.DeviceAuthorizationValidatorComposite(System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator_)}

Composes multiple device authorization context validators into a single validator\.
Executes validators in sequence until one returns an error or all pass\.

```csharp
public DeviceAuthorizationValidatorComposite(System.Collections.Generic.IEnumerable<Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator> validators);
```
#### Parameters

###### `validators` [System\.Collections\.Generic\.IEnumerable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1')[IDeviceAuthorizationContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Validation\.IDeviceAuthorizationContextValidator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1') {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidatorComposite.DeviceAuthorizationValidatorComposite(System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.IDeviceAuthorizationContextValidator_).validators}

The collection of validators to execute\.
### Methods

## DeviceAuthorizationValidatorComposite\.ValidateAsync\(DeviceAuthorizationValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidatorComposite.ValidateAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Validation.DeviceAuthorizationValidationContext)}

Validates the device authorization request context\.

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

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

The validation context containing the request and client information\.

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

#### 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')  
An OIDC error if validation fails, or null if validation succeeds\.
