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

## IEndSessionContextValidator Interface

One step in the end\-session validation pipeline\. Each implementation inspects \(and may
enrich\) a shared [EndSessionValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.EndSessionValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.EndSessionValidationContext'); returning a non\-null
[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError') aborts the pipeline\. Implementations are composed via
[EndSessionContextValidatorComposite](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.EndSessionContextValidatorComposite 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.EndSessionContextValidatorComposite')\.

```csharp
public interface IEndSessionContextValidator
```

Derived  
↳ [ClientValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.ClientValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.ClientValidator')  
↳ [ConfirmationValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.ConfirmationValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.ConfirmationValidator')  
↳ [EndSessionContextValidatorComposite](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.EndSessionContextValidatorComposite 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.EndSessionContextValidatorComposite')  
↳ [IdTokenHintValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.IdTokenHintValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.IdTokenHintValidator')  
↳ [PostLogoutRedirectUrisValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.PostLogoutRedirectUrisValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.PostLogoutRedirectUrisValidator')
### Methods

## IEndSessionContextValidator\.ValidateAsync\(EndSessionValidationContext\) Method {#Abblix.Oidc.Server.Endpoints.EndSession.Validation.IEndSessionContextValidator.ValidateAsync(Abblix.Oidc.Server.Endpoints.EndSession.Validation.EndSessionValidationContext)}

Performs this validator's check against the shared context\.

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

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

Mutable validation context shared with subsequent steps; this validator may
populate fields \(such as resolved `ClientInfo` or parsed `id_token_hint`\)\.

#### 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')  
`null` if the request passes this step, otherwise the error to surface\.
