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

## IntrospectionRequestValidator Class

Validates the introspection request properties and authenticates a client that initiated the request\.

```csharp
public class IntrospectionRequestValidator : Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator
```

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

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

### Remarks
This class performs validation of introspection requests and client authentication\.
It ensures that the request is authorized and the provided token is valid for the client\.
The validation process includes checking the authenticity of the client and the integrity of the token\.
It leverages a client request authenticator for client authentication and a JWT validator for token validation\.
### Constructors

## IntrospectionRequestValidator\(ILogger\<IntrospectionRequestValidator\>, IClientAuthenticator, IAuthServiceJwtValidator\) Constructor {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.IntrospectionRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator)}

Validates the introspection request properties and authenticates a client that initiated the request\.

```csharp
public IntrospectionRequestValidator(Microsoft.Extensions.Logging.ILogger<Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator> logger, Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator clientAuthenticator, Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator jwtValidator);
```
#### Parameters

###### `logger` [Microsoft\.Extensions\.Logging\.ILogger&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1')[IntrospectionRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.IntrospectionRequestValidator')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger-1 'Microsoft\.Extensions\.Logging\.ILogger\`1') {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.IntrospectionRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).logger}

The logger for logging activities within the validator\.

###### `clientAuthenticator` [IClientAuthenticator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator 'Abblix\.Oidc\.Server\.Features\.ClientAuthentication\.IClientAuthenticator') {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.IntrospectionRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).clientAuthenticator}

The client request authenticator to authenticate the client\.

###### `jwtValidator` [IAuthServiceJwtValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator 'Abblix\.Oidc\.Server\.Features\.Tokens\.Validation\.IAuthServiceJwtValidator') {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.IntrospectionRequestValidator(Microsoft.Extensions.Logging.ILogger_Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator_,Abblix.Oidc.Server.Features.ClientAuthentication.IClientAuthenticator,Abblix.Oidc.Server.Features.Tokens.Validation.IAuthServiceJwtValidator).jwtValidator}

The JWT validator to validate the token\.

### Remarks
This class performs validation of introspection requests and client authentication\.
It ensures that the request is authorized and the provided token is valid for the client\.
The validation process includes checking the authenticity of the client and the integrity of the token\.
It leverages a client request authenticator for client authentication and a JWT validator for token validation\.
### Methods

## IntrospectionRequestValidator\.ValidateAsync\(IntrospectionRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Validates the introspection request properties and authenticates a client that initiated the request\.

```csharp
public System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest introspectionRequest, Abblix.Oidc.Server.Model.ClientRequest clientRequest);
```
#### Parameters

###### `introspectionRequest` [IntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.IntrospectionRequest 'Abblix\.Oidc\.Server\.Model\.IntrospectionRequest') {#Abblix.Oidc.Server.Endpoints.Introspection.IntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest).introspectionRequest}

The introspection request to validate\. It includes the token and client information for validation\.

###### `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.Introspection.IntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

Additional client request information for contextual validation\.

Implements [ValidateAsync\(IntrospectionRequest, ClientRequest\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator#Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.IIntrospectionRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.IntrospectionRequest,Abblix.Oidc.Server.Model.ClientRequest) 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.IIntrospectionRequestValidator\.ValidateAsync\(Abblix\.Oidc\.Server\.Model\.IntrospectionRequest, Abblix\.Oidc\.Server\.Model\.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')[Abblix\.Utils\.Result&lt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[ValidIntrospectionRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.Introspection.Interfaces.ValidIntrospectionRequest 'Abblix\.Oidc\.Server\.Endpoints\.Introspection\.Interfaces\.ValidIntrospectionRequest')[,](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')[OidcError](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.OidcError 'Abblix\.Oidc\.Server\.Common\.OidcError')[&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 validation operation\. The task result contains the
[Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2') which indicates whether the request is valid or contains errors\.
