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

## PushedRequestFetcher Class

Fetches pushed authorization request objects identified by a URN \(Uniform Resource Name\) from a storage system\.

```csharp
public class PushedRequestFetcher : Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher
```

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

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

## PushedRequestFetcher\(IOptionsSnapshot\<OidcOptions\>, IAuthorizationRequestStorage, IClientInfoProvider\) Constructor {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.PushedRequestFetcher(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider)}

Fetches pushed authorization request objects identified by a URN \(Uniform Resource Name\) from a storage system\.

```csharp
public PushedRequestFetcher(Microsoft.Extensions.Options.IOptionsSnapshot<Abblix.Oidc.Server.Common.Configuration.OidcOptions> options, Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage authorizationRequestStorage, Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider clientInfoProvider);
```
#### Parameters

###### `options` [Microsoft\.Extensions\.Options\.IOptionsSnapshot&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptionssnapshot-1 'Microsoft\.Extensions\.Options\.IOptionsSnapshot\`1')[OidcOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptionssnapshot-1 'Microsoft\.Extensions\.Options\.IOptionsSnapshot\`1') {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.PushedRequestFetcher(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider).options}

Provides configuration options for the OIDC server, such as whether PAR is required\.

###### `authorizationRequestStorage` [IAuthorizationRequestStorage](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage 'Abblix\.Oidc\.Server\.Features\.Storages\.IAuthorizationRequestStorage') {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.PushedRequestFetcher(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider).authorizationRequestStorage}

The storage system used to retrieve pushed authorization request objects\.

###### `clientInfoProvider` [IClientInfoProvider](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider 'Abblix\.Oidc\.Server\.Features\.ClientInformation\.IClientInfoProvider') {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.PushedRequestFetcher(Microsoft.Extensions.Options.IOptionsSnapshot_Abblix.Oidc.Server.Common.Configuration.OidcOptions_,Abblix.Oidc.Server.Features.Storages.IAuthorizationRequestStorage,Abblix.Oidc.Server.Features.ClientInformation.IClientInfoProvider).clientInfoProvider}

Resolves the requesting client's registration to enforce the per\-client PAR requirement\.
### Methods

## PushedRequestFetcher\.FetchAsync\(AuthorizationRequest\) Method {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest)}

Asynchronously retrieves the pushed authorization request object associated with the specified URN\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Model.AuthorizationRequest,Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError>> FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest request);
```
#### Parameters

###### `request` [AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest') {#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.PushedRequestFetcher.FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest).request}

The authorization request containing a URN from which to fetch the stored pushed authorization request object\.

Implements [FetchAsync\(AuthorizationRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher#Abblix.Oidc.Server.Endpoints.Authorization.RequestFetching.IAuthorizationRequestFetcher.FetchAsync(Abblix.Oidc.Server.Model.AuthorizationRequest) 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.RequestFetching\.IAuthorizationRequestFetcher\.FetchAsync\(Abblix\.Oidc\.Server\.Model\.AuthorizationRequest\)')

#### 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')[AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[AuthorizationRequestValidationError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Interfaces.AuthorizationRequestValidationError 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Interfaces\.AuthorizationRequestValidationError')[&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 task representing the asynchronous operation\. The task result contains the fetched pushed authorization
request object or an error if not found\.

### Remarks
This method checks if the provided authorization request contains a URN that references a pushed authorization
request stored in the system\. If the URN is valid and corresponds to a stored request, the method retrieves
and returns the request object\. If the request object cannot be found or the URN is invalid,
an error is returned\.
Additionally, it checks the server configuration to enforce the Pushed Authorization Request \(PAR\) requirement\.
