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

## EndSessionRequestValidator Class

Implements the logic for validating end\-session requests\.

```csharp
public class EndSessionRequestValidator : Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestValidator
```

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

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

### Remarks
This class validates end\-session requests to ensure they conform to expected standards and business rules\.
It uses the injected [IEndSessionContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.IEndSessionContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.IEndSessionContextValidator') for performing the actual validation logic\.
Depending on the validation outcome, it constructs an appropriate validation result which can indicate either
successful validation or a specific error condition\.
### Constructors

## EndSessionRequestValidator\(IEndSessionContextValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionRequestValidator.EndSessionRequestValidator(Abblix.Oidc.Server.Endpoints.EndSession.Validation.IEndSessionContextValidator)}

Implements the logic for validating end\-session requests\.

```csharp
public EndSessionRequestValidator(Abblix.Oidc.Server.Endpoints.EndSession.Validation.IEndSessionContextValidator validator);
```
#### Parameters

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

The end\-session context validator responsible for the core validation logic\.

### Remarks
This class validates end\-session requests to ensure they conform to expected standards and business rules\.
It uses the injected [IEndSessionContextValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Validation.IEndSessionContextValidator 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Validation\.IEndSessionContextValidator') for performing the actual validation logic\.
Depending on the validation outcome, it constructs an appropriate validation result which can indicate either
successful validation or a specific error condition\.
### Methods

## EndSessionRequestValidator\.ValidateAsync\(EndSessionRequest\) Method {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.EndSessionRequest)}

Runs the configured validation pipeline over the raw end\-session request\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.ValidEndSessionRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.EndSessionRequest request);
```
#### Parameters

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

The wire\-level request to validate\.

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

#### 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')[ValidEndSessionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.ValidEndSessionRequest 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.ValidEndSessionRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[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/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 [ValidEndSessionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.ValidEndSessionRequest 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.ValidEndSessionRequest') on success, or an [OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')
identifying the first failed step\.
