#### [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')

## EndSessionHandler Class

Default [IEndSessionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.IEndSessionHandler') implementation\. Delegates validation to
[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'), then forwards a successful
[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') to [IEndSessionRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.IEndSessionRequestProcessor');
validation failures short\-circuit and are returned as\-is\.

```csharp
public class EndSessionHandler : Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler
```

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

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

## EndSessionHandler\(IEndSessionRequestValidator, IEndSessionRequestProcessor\) Constructor {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionHandler.EndSessionHandler(Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestValidator,Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor)}

Default [IEndSessionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.IEndSessionHandler') implementation\. Delegates validation to
[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'), then forwards a successful
[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') to [IEndSessionRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.IEndSessionRequestProcessor');
validation failures short\-circuit and are returned as\-is\.

```csharp
public EndSessionHandler(Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestValidator validator, Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor processor);
```
#### Parameters

###### `validator` [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') {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionHandler.EndSessionHandler(Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestValidator,Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor).validator}

###### `processor` [IEndSessionRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.IEndSessionRequestProcessor') {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionHandler.EndSessionHandler(Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestValidator,Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.IEndSessionRequestProcessor).processor}
### Methods

## EndSessionHandler\.HandleAsync\(EndSessionRequest\) Method {#Abblix.Oidc.Server.Endpoints.EndSession.EndSessionHandler.HandleAsync(Abblix.Oidc.Server.Model.EndSessionRequest)}

Handles a single RP\-initiated logout request end to end\.

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

###### `endSessionRequest` [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.EndSessionHandler.HandleAsync(Abblix.Oidc.Server.Model.EndSessionRequest).endSessionRequest}

The parsed wire\-level end\-session request\.

Implements [HandleAsync\(EndSessionRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler#Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler.HandleAsync(Abblix.Oidc.Server.Model.EndSessionRequest) 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.IEndSessionHandler\.HandleAsync\(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')[EndSessionSuccess](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.EndSessionSuccess 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.EndSessionSuccess')[,](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')  
An [EndSessionSuccess](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.Interfaces.EndSessionSuccess 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.Interfaces\.EndSessionSuccess') 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')
describing why the request was rejected\.
