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

## TokenValidationContext Class

Encapsulates the context required for validating token requests, including client and authorization grant details\.

```csharp
public record TokenValidationContext : System.IEquatable<Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext>
```

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

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

## TokenValidationContext\(TokenRequest, ClientRequest\) Constructor {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.TokenValidationContext(Abblix.Oidc.Server.Model.TokenRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Encapsulates the context required for validating token requests, including client and authorization grant details\.

```csharp
public TokenValidationContext(Abblix.Oidc.Server.Model.TokenRequest Request, Abblix.Oidc.Server.Model.ClientRequest ClientRequest);
```
#### Parameters

###### `Request` [TokenRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.TokenRequest 'Abblix\.Oidc\.Server\.Model\.TokenRequest') {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.TokenValidationContext(Abblix.Oidc.Server.Model.TokenRequest,Abblix.Oidc.Server.Model.ClientRequest).Request}

###### `ClientRequest` [ClientRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.ClientRequest 'Abblix\.Oidc\.Server\.Model\.ClientRequest') {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.TokenValidationContext(Abblix.Oidc.Server.Model.TokenRequest,Abblix.Oidc.Server.Model.ClientRequest).ClientRequest}
### Properties

## TokenValidationContext\.AuthorizedGrant Property {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.AuthorizedGrant}

Represents the result of an authorized grant, containing both the session and context of the authorization\.
This object is essential for ensuring that the grant is valid and for extracting any additional information
needed for token generation\.

```csharp
public Abblix.Oidc.Server.Endpoints.Token.Interfaces.AuthorizedGrant AuthorizedGrant { get; set; }
```

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

## TokenValidationContext\.ClientInfo Property {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.ClientInfo}

Information about the client making the request, derived from the client authentication process\.

```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\.

## TokenValidationContext\.ProofKeyThumbprint Property {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.ProofKeyThumbprint}

RFC 7638 base64url\-encoded JWK thumbprint of the DPoP proof\-of\-possession key
\(RFC 9449 §6\.1\) populated by the DPoP validator step when a valid proof accompanies
the request\. Surfaces to the processor so the issued access token can carry
`cnf.jkt`\. `null` when no proof was presented or DPoP is not in use\.

```csharp
public string? ProofKeyThumbprint { get; set; }
```

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

## TokenValidationContext\.Resources Property {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.Resources}

Specifies additional resources that the client has requested or that have been included in the authorization\.
These definitions provide context on the resources that are accessible with the issued token, enhancing
the token's utility for fine\-grained access control\.

```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')

## TokenValidationContext\.Scope Property {#Abblix.Oidc.Server.Endpoints.Token.Validation.TokenValidationContext.Scope}

Defines the scope of access requested or authorized\. This array of scope definitions helps in determining
the extent of access granted to the client and any constraints or conditions applied to the token\.

```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')
