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

## AuthenticationController Class

Handles authentication\-related processes in the context of OpenID Connect and OAuth2 protocols\.
This controller manages user authorization, provides user information, handles end\-session requests,
and checks session statuses\.

```csharp
public sealed class AuthenticationController : Microsoft.AspNetCore.Mvc.ControllerBase
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → [Microsoft\.AspNetCore\.Mvc\.ControllerBase](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.controllerbase 'Microsoft\.AspNetCore\.Mvc\.ControllerBase') → AuthenticationController

### Remarks
This controller serves as the core component for managing user authentication and session control
in an OpenID Connect compliant manner\. It includes endpoints for initiating user authorization,
retrieving authenticated user information, managing user logout processes, and checking the status
of user sessions for OIDC compliance\.
### Methods

## AuthenticationController\.AuthorizeAsync\(IAuthorizationHandler, IAuthorizationResponseFormatter, AuthorizationRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.AuthorizeAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest)}

Handles requests to the authorization endpoint, performing user authentication and getting consent for
requested scopes\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult<Abblix.Oidc.Server.Model.AuthorizationResponse>> AuthorizeAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest request);
```
#### Parameters

###### `handler` [IAuthorizationHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.AuthorizeAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest).handler}

The handler responsible for processing authorization requests\.

###### `formatter` [IAuthorizationResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IAuthorizationResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.AuthorizeAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest).formatter}

The formatter used to generate a response for the authorization request\.

###### `request` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.AuthorizeAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest).request}

The authorization request details received from the client\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult-1 'Microsoft\.AspNetCore\.Mvc\.ActionResult\`1')[AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationResponse 'Abblix\.Oidc\.Server\.Model\.AuthorizationResponse')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult-1 'Microsoft\.AspNetCore\.Mvc\.ActionResult\`1')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns an action result containing
            the authorization response\.

### Remarks
This endpoint is a key component of the OpenID Connect flow, initiating user authentication and
consent for access to their information\.
[            OpenID Connect Authorization Endpoint Documentation
            ](https://openid.net/specs/openid-connect-core-1_0.html#AuthorizationEndpoint 'https://openid.net/specs/openid-connect-core-1\_0.html\#AuthorizationEndpoint')

## AuthenticationController\.BackChannelAuthenticationAsync\(IBackChannelAuthenticationHandler, IBackChannelAuthenticationResponseFormatter, BackChannelAuthenticationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest)}

Handles the backchannel authentication endpoint, initiating the authentication flow that occurs outside
the traditional user\-agent interaction as specified by CIBA\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult> BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest authenticationRequest, Abblix.Oidc.Server.Mvc.Model.ClientRequest clientRequest);
```
#### Parameters

###### `handler` [IBackChannelAuthenticationHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler 'Abblix\.Oidc\.Server\.Endpoints\.BackChannelAuthentication\.Interfaces\.IBackChannelAuthenticationHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).handler}

Service that processes the authentication request, validating and initiating the backchannel flow\.

###### `formatter` [IBackChannelAuthenticationResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IBackChannelAuthenticationResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).formatter}

Service that formats the response to the client, based on the result of the backchannel authentication request\.

###### `authenticationRequest` [BackChannelAuthenticationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.BackChannelAuthenticationRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).authenticationRequest}

The backchannel authentication request containing user\-related authentication parameters\.

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.BackChannelAuthenticationAsync(Abblix.Oidc.Server.Endpoints.BackChannelAuthentication.Interfaces.IBackChannelAuthenticationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IBackChannelAuthenticationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.BackChannelAuthenticationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).clientRequest}

The client request providing the client\-related information needed for the request\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
An [Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult') representing the HTTP response to the backchannel authentication request\.
The response may indicate successful initiation of the process or an error if the request fails validation\.

### Remarks
The method implements the CIBA \(Client\-Initiated Backchannel Authentication\) protocol,
enabling the authentication of a user through an out\-of\-band mechanism\.
Clients initiate the authentication request, and the user's authentication happens through a separate channel
\(e\.g\., mobile device\)\.

For more details, refer to the CIBA documentation:
[             CIBA \- Client Initiated Backchannel Authentication Documentation
             ](https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1_0.html#rfc.section.7 'https://openid.net/specs/openid-client-initiated-backchannel-authentication-core-1\_0.html\#rfc.section.7')

## AuthenticationController\.CheckSessionAsync\(ICheckSessionHandler, ICheckSessionResponseFormatter\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.CheckSessionAsync(Abblix.Oidc.Server.Endpoints.CheckSession.Interfaces.ICheckSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.ICheckSessionResponseFormatter)}

Monitors the user's session state by handling requests to the check session endpoint, typically used
within an iframe for session management\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult> CheckSessionAsync(Abblix.Oidc.Server.Endpoints.CheckSession.Interfaces.ICheckSessionHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.ICheckSessionResponseFormatter formatter);
```
#### Parameters

###### `handler` [ICheckSessionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.CheckSession.Interfaces.ICheckSessionHandler 'Abblix\.Oidc\.Server\.Endpoints\.CheckSession\.Interfaces\.ICheckSessionHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.CheckSessionAsync(Abblix.Oidc.Server.Endpoints.CheckSession.Interfaces.ICheckSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.ICheckSessionResponseFormatter).handler}

The handler responsible for the check session operation\.

###### `formatter` [ICheckSessionResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.ICheckSessionResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.ICheckSessionResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.CheckSessionAsync(Abblix.Oidc.Server.Endpoints.CheckSession.Interfaces.ICheckSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.ICheckSessionResponseFormatter).formatter}

The formatter used to generate a response suitable for session checking
            within an iframe\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns an action result for
            the check session response\.

### Remarks
This endpoint is part of the OpenID Connect session management specification,
enabling clients to monitor the authentication state\.
[            OpenID Connect Check Session Documentation
            ](https://openid.net/specs/openid-connect-session-1_0.html#OPiframe 'https://openid.net/specs/openid-connect-session-1\_0.html\#OPiframe')

## AuthenticationController\.DeviceAuthorizationAsync\(IDeviceAuthorizationHandler, IDeviceAuthorizationResponseFormatter, DeviceAuthorizationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest)}

Handles the device authorization endpoint for getting user authorization on limited\-input devices\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult> DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest deviceAuthorizationRequest, Abblix.Oidc.Server.Mvc.Model.ClientRequest clientRequest);
```
#### Parameters

###### `handler` [IDeviceAuthorizationHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler 'Abblix\.Oidc\.Server\.Endpoints\.DeviceAuthorization\.Interfaces\.IDeviceAuthorizationHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).handler}

###### `formatter` [IDeviceAuthorizationResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IDeviceAuthorizationResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).formatter}

###### `deviceAuthorizationRequest` [DeviceAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.DeviceAuthorizationRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).deviceAuthorizationRequest}

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.DeviceAuthorizationAsync(Abblix.Oidc.Server.Endpoints.DeviceAuthorization.Interfaces.IDeviceAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IDeviceAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.DeviceAuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).clientRequest}

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')

### Remarks
[            OAuth 2\.0 Device Authorization Grant Documentation
            ](https://www.rfc-editor.org/rfc/rfc8628 'https://www.rfc-editor.org/rfc/rfc8628')

## AuthenticationController\.EndSessionAsync\(IEndSessionHandler, IEndSessionResponseFormatter, EndSessionRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.EndSessionAsync(Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter,Abblix.Oidc.Server.Mvc.Model.EndSessionRequest)}

Facilitates the logout process by handling requests to the end session endpoint,
allowing clients to terminate the user's session\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult> EndSessionAsync(Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.EndSessionRequest request);
```
#### Parameters

###### `handler` [IEndSessionHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler 'Abblix\.Oidc\.Server\.Endpoints\.EndSession\.IEndSessionHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.EndSessionAsync(Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter,Abblix.Oidc.Server.Mvc.Model.EndSessionRequest).handler}

The handler responsible for processing end session requests\.

###### `formatter` [IEndSessionResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IEndSessionResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.EndSessionAsync(Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter,Abblix.Oidc.Server.Mvc.Model.EndSessionRequest).formatter}

The formatter used to generate a response for the end session request\.

###### `request` [EndSessionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.EndSessionRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.EndSessionRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.EndSessionAsync(Abblix.Oidc.Server.Endpoints.EndSession.IEndSessionHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IEndSessionResponseFormatter,Abblix.Oidc.Server.Mvc.Model.EndSessionRequest).request}

The end session request details received from the client\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns an action result for
            the end session process\.

### Remarks
This endpoint supports the RP\-Initiated Logout functionality, enabling clients to initiate
logout procedures compliant with OpenID Connect\.
[            OpenID Connect EndSession Endpoint Documentation
            ](https://openid.net/specs/openid-connect-rpinitiated-1_0.html#RPLogout 'https://openid.net/specs/openid-connect-rpinitiated-1\_0.html\#RPLogout')

## AuthenticationController\.PushAuthorizeAsync\(IPushedAuthorizationHandler, IPushedAuthorizationResponseFormatter, AuthorizationRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest)}

Handles the pushed authorization endpoint\. This endpoint is used for receiving and processing pushed
authorization requests from clients, validating the request, and generating a response that either contains
a URI for the stored authorization request or an error message\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult<Abblix.Oidc.Server.Model.AuthorizationResponse>> PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest authorizationRequest, Abblix.Oidc.Server.Mvc.Model.ClientRequest clientRequest);
```
#### Parameters

###### `handler` [IPushedAuthorizationHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler 'Abblix\.Oidc\.Server\.Endpoints\.PushedAuthorization\.Interfaces\.IPushedAuthorizationHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).handler}

The handler responsible for processing pushed authorization requests\.

###### `formatter` [IPushedAuthorizationResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IPushedAuthorizationResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).formatter}

The service for formatting the authorization response\.

###### `authorizationRequest` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).authorizationRequest}

The authorization request received from the client\.

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.PushAuthorizeAsync(Abblix.Oidc.Server.Endpoints.PushedAuthorization.Interfaces.IPushedAuthorizationHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IPushedAuthorizationResponseFormatter,Abblix.Oidc.Server.Mvc.Model.AuthorizationRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).clientRequest}

Additional client request information for contextual validation\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult-1 'Microsoft\.AspNetCore\.Mvc\.ActionResult\`1')[AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationResponse 'Abblix\.Oidc\.Server\.Model\.AuthorizationResponse')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult-1 'Microsoft\.AspNetCore\.Mvc\.ActionResult\`1')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
An action result containing the formatted authorization response, which can be a success or an error response\.

### Remarks
This method first validates the incoming authorization request\.
If the request is valid, it is processed and stored, and a response containing the request URI is returned\.
If the request is invalid, an error response is generated\.

## AuthenticationController\.UserInfoAsync\(IUserInfoHandler, IUserInfoResponseFormatter, UserInfoRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter,Abblix.Oidc.Server.Mvc.Model.UserInfoRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest)}

Processes requests to the userinfo endpoint, returning claims about the authenticated user based on
the provided access token\.

```csharp
public System.Threading.Tasks.Task<Microsoft.AspNetCore.Mvc.ActionResult> UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler handler, Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter formatter, Abblix.Oidc.Server.Mvc.Model.UserInfoRequest userInfoRequest, Abblix.Oidc.Server.Mvc.Model.ClientRequest clientRequest);
```
#### Parameters

###### `handler` [IUserInfoHandler](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler 'Abblix\.Oidc\.Server\.Endpoints\.UserInfo\.Interfaces\.IUserInfoHandler') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter,Abblix.Oidc.Server.Mvc.Model.UserInfoRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).handler}

The handler responsible for processing userinfo requests\.

###### `formatter` [IUserInfoResponseFormatter](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter 'Abblix\.Oidc\.Server\.Mvc\.Formatters\.Interfaces\.IUserInfoResponseFormatter') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter,Abblix.Oidc.Server.Mvc.Model.UserInfoRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).formatter}

The formatter used to generate a response with user claims\.

###### `userInfoRequest` [UserInfoRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.UserInfoRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.UserInfoRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter,Abblix.Oidc.Server.Mvc.Model.UserInfoRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).userInfoRequest}

The userinfo request containing the access token\.

###### `clientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.Model.ClientRequest 'Abblix\.Oidc\.Server\.Mvc\.Model\.ClientRequest') {#Abblix.Oidc.Server.Mvc.Controllers.AuthenticationController.UserInfoAsync(Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoHandler,Abblix.Oidc.Server.Mvc.Formatters.Interfaces.IUserInfoResponseFormatter,Abblix.Oidc.Server.Mvc.Model.UserInfoRequest,Abblix.Oidc.Server.Mvc.Model.ClientRequest).clientRequest}

Additional request information provided by the client\.

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[Microsoft\.AspNetCore\.Mvc\.ActionResult](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.actionresult 'Microsoft\.AspNetCore\.Mvc\.ActionResult')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
A task that returns an action result containing
            the userinfo response\.

### Remarks
This endpoint provides claims about the authenticated user, conforming to the
[            OpenID Connect UserInfo Endpoint Documentation
            ](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo 'https://openid.net/specs/openid-connect-core-1\_0.html\#UserInfo')
