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

## CompositeUriValidator Class

Aggregates several [IUriValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator') instances under OR semantics: a URI is
accepted as soon as any of the wrapped validators accepts it\. Used to back a client whose
configuration registers multiple equally\-valid URIs \(for example, several registered redirect
URIs for the same client\)\.

```csharp
public sealed class CompositeUriValidator : Abblix.Oidc.Server.Features.UriValidation.IUriValidator
```

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

Implements [IUriValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator')
### Constructors

## CompositeUriValidator\(IUriValidator\[\]\) Constructor {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.CompositeUriValidator(Abblix.Oidc.Server.Features.UriValidation.IUriValidator[])}

Convenience constructor for a fixed\-arity validator list\.

```csharp
public CompositeUriValidator(params Abblix.Oidc.Server.Features.UriValidation.IUriValidator[] validators);
```
#### Parameters

###### `validators` [IUriValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array') {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.CompositeUriValidator(Abblix.Oidc.Server.Features.UriValidation.IUriValidator[]).validators}

## CompositeUriValidator\(IEnumerable\<IUriValidator\>\) Constructor {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.CompositeUriValidator(System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.UriValidation.IUriValidator_)}

Aggregates several [IUriValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator') instances under OR semantics: a URI is
accepted as soon as any of the wrapped validators accepts it\. Used to back a client whose
configuration registers multiple equally\-valid URIs \(for example, several registered redirect
URIs for the same client\)\.

```csharp
public CompositeUriValidator(System.Collections.Generic.IEnumerable<Abblix.Oidc.Server.Features.UriValidation.IUriValidator> 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')[IUriValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.ienumerable-1 'System\.Collections\.Generic\.IEnumerable\`1') {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.CompositeUriValidator(System.Collections.Generic.IEnumerable_Abblix.Oidc.Server.Features.UriValidation.IUriValidator_).validators}

The validators to combine; evaluation short\-circuits on the first match\.
### Methods

## CompositeUriValidator\.IsValid\(Uri\) Method {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.IsValid(System.Uri)}

Returns `true` as soon as any wrapped validator accepts [uri](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.IsValid(System.Uri).uri 'Abblix\.Oidc\.Server\.Features\.UriValidation\.CompositeUriValidator\.IsValid\(System\.Uri\)\.uri');
returns `false` only when every validator rejects it\.

```csharp
public bool IsValid(System.Uri uri);
```
#### Parameters

###### `uri` [System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri') {#Abblix.Oidc.Server.Features.UriValidation.CompositeUriValidator.IsValid(System.Uri).uri}

The URI to validate\.

Implements [IsValid\(Uri\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.UriValidation.IUriValidator#Abblix.Oidc.Server.Features.UriValidation.IUriValidator.IsValid(System.Uri) 'Abblix\.Oidc\.Server\.Features\.UriValidation\.IUriValidator\.IsValid\(System\.Uri\)')

#### Returns
[System\.Boolean](https://learn.microsoft.com/en-us/dotnet/api/system.boolean 'System\.Boolean')
