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

## AuthorizationValidationContext Class

Encapsulates the context necessary for validating an authorization request, including client details,
response modes, and the OAuth 2\.0 flow type\.

```csharp
public record AuthorizationValidationContext : System.IEquatable<Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext>
```

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

Implements [System\.IEquatable&lt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')[AuthorizationValidationContext](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext 'Abblix\.Oidc\.Server\.Endpoints\.Authorization\.Validation\.AuthorizationValidationContext')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/system.iequatable-1 'System\.IEquatable\`1')
### Constructors

## AuthorizationValidationContext\(AuthorizationRequest\) Constructor {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.AuthorizationValidationContext(Abblix.Oidc.Server.Model.AuthorizationRequest)}

Encapsulates the context necessary for validating an authorization request, including client details,
response modes, and the OAuth 2\.0 flow type\.

```csharp
public AuthorizationValidationContext(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.Validation.AuthorizationValidationContext.AuthorizationValidationContext(Abblix.Oidc.Server.Model.AuthorizationRequest).Request}
### Properties

## AuthorizationValidationContext\.AuthorizationDetails Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.AuthorizationDetails}

The RFC 9396 Rich Authorization Requests array after per\-type and per\-client validation by
[IAuthorizationDetailsPolicy](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.RichAuthorizationRequests.IAuthorizationDetailsPolicy 'Abblix\.Oidc\.Server\.Features\.RichAuthorizationRequests\.IAuthorizationDetailsPolicy'), stored as the
raw [System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray') so byte\-exact content survives forward to the grant\.
`null` when the request did not include `authorization_details`\.

```csharp
public System.Text.Json.Nodes.JsonArray? AuthorizationDetails { get; set; }
```

#### Property Value
[System\.Text\.Json\.Nodes\.JsonArray](https://learn.microsoft.com/en-us/dotnet/api/system.text.json.nodes.jsonarray 'System\.Text\.Json\.Nodes\.JsonArray')

## AuthorizationValidationContext\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.ClientInfo}

Provides details about the client making the authorization request\. This includes identifying information
such as client ID and any other relevant data that has been registered with the authorization server\.

```csharp
public Abblix.Oidc.Server.Features.ClientInformation.ClientInfo ClientInfo { get; set; }
```

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

#### Exceptions

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
Thrown when trying to access this property before it is set\.

## AuthorizationValidationContext\.FlowType Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.FlowType}

Identifies the OAuth 2\.0 flow used in the authorization request, such as Authorization Code or Implicit\.

```csharp
public Abblix.Oidc.Server.Common.Constants.FlowTypes FlowType { get; set; }
```

#### Property Value
[FlowTypes](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.FlowTypes 'Abblix\.Oidc\.Server\.Common\.Constants\.FlowTypes')

#### Exceptions

[System\.InvalidOperationException](https://learn.microsoft.com/en-us/dotnet/api/system.invalidoperationexception 'System\.InvalidOperationException')  
Thrown when trying to access this property before it is set\.

## AuthorizationValidationContext\.Request Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.Request}

The authorization request to be validated\. This includes all the details provided by the client
for the authorization process\.

```csharp
public Abblix.Oidc.Server.Model.AuthorizationRequest Request { get; set; }
```

#### Property Value
[AuthorizationRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.AuthorizationRequest 'Abblix\.Oidc\.Server\.Model\.AuthorizationRequest')

## AuthorizationValidationContext\.Resources Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.Resources}

A collection of resource definitions that may be requested as part of the authorization process,
providing additional control over the accessible resources\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ResourceDefinition[] Resources { get; set; }
```

#### Property Value
[ResourceDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ResourceDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ResourceDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## AuthorizationValidationContext\.ResponseMode Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.ResponseMode}

Specifies how the authorization response should be delivered to the client, e\.g\., via a direct query or fragment\.

```csharp
public string ResponseMode { get; set; }
```

#### Property Value
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')

## AuthorizationValidationContext\.Scope Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.Scope}

A collection of scope definitions applicable to the authorization request, determining the permissions granted\.

```csharp
public Abblix.Oidc.Server.Common.Constants.ScopeDefinition[] Scope { get; set; }
```

#### Property Value
[ScopeDefinition](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Constants.ScopeDefinition 'Abblix\.Oidc\.Server\.Common\.Constants\.ScopeDefinition')[\[\]](https://learn.microsoft.com/en-us/dotnet/api/system.array 'System\.Array')

## AuthorizationValidationContext\.ValidRedirectUri Property {#Abblix.Oidc.Server.Endpoints.Authorization.Validation.AuthorizationValidationContext.ValidRedirectUri}

The redirect URI where the response to the authorization request should be sent\. This URI must be one of the
registered URIs for the client to ensure security\.

```csharp
public System.Uri? ValidRedirectUri { get; set; }
```

#### Property Value
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')
