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

## AuthorizationRequestProcessorDecorator Class

Enhances an existing authorization request processor with session management capabilities,
specifically tailored for OpenID Connect \(OIDC\) scenarios\. This decorator introduces session
state handling into the authorization response, enabling clients to maintain and manage session
state in accordance with OpenID Connect session management specifications\.

```csharp
public class AuthorizationRequestProcessorDecorator : Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor
```

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

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

## AuthorizationRequestProcessorDecorator\(IAuthorizationRequestProcessor, ISessionManagementService\) Constructor {#Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator.AuthorizationRequestProcessorDecorator(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor,Abblix.Oidc.Server.Features.SessionManagement.ISessionManagementService)}

Enhances an existing authorization request processor with session management capabilities,
specifically tailored for OpenID Connect \(OIDC\) scenarios\. This decorator introduces session
state handling into the authorization response, enabling clients to maintain and manage session
state in accordance with OpenID Connect session management specifications\.

```csharp
public AuthorizationRequestProcessorDecorator(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor inner, Abblix.Oidc.Server.Features.SessionManagement.ISessionManagementService sessionManagementService);
```
#### Parameters

###### `inner` [IAuthorizationRequestProcessor](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestProcessor') {#Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator.AuthorizationRequestProcessorDecorator(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor,Abblix.Oidc.Server.Features.SessionManagement.ISessionManagementService).inner}

The authorization request processor to be enhanced with session management functionality\.

###### `sessionManagementService` [ISessionManagementService](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.SessionManagement.ISessionManagementService 'Abblix\.Oidc\.Server\.Features\.SessionManagement\.ISessionManagementService') {#Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator.AuthorizationRequestProcessorDecorator(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor,Abblix.Oidc.Server.Features.SessionManagement.ISessionManagementService).sessionManagementService}

The session management service responsible for generating and
            handling session state information\.
### Methods

## AuthorizationRequestProcessorDecorator\.ProcessAsync\(ValidAuthorizationRequest\) Method {#Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator.ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest)}

Delegates to the wrapped processor and, when session management is enabled and the response is a successful
OpenID Connect authentication, attaches the OIDC Session Management 1\.0 `session_state` value so the
client's `check_session_iframe` can detect session changes\.

```csharp
public System.Threading.Tasks.Task<Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse> ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest request);
```
#### Parameters

###### `request` [ValidAuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest') {#Abblix.Oidc.Server.Features.SessionManagement.AuthorizationRequestProcessorDecorator.ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest).request}

The authorization request to be processed, expected to be a valid and authenticated request\.

Implements [ProcessAsync\(ValidAuthorizationRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor#Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.IAuthorizationRequestProcessor.ProcessAsync(Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.ValidAuthorizationRequest) 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.IAuthorizationRequestProcessor\.ProcessAsync\(Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.ValidAuthorizationRequest\)')

#### Returns
[System\.Threading\.Tasks\.Task&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')[AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task-1 'System\.Threading\.Tasks\.Task\`1')  
The inner processor's [AuthorizationResponse](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationResponse 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationResponse'), with `session_state` populated when applicable\.
