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

## IUserInfoRequestValidator Interface

Parses and validates an access token provided in a user info request\.

```csharp
public interface IUserInfoRequestValidator
```

Derived  
↳ [UserInfoRequestValidator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.UserInfo.UserInfoRequestValidator 'Abblix\.Oidc\.Server\.Endpoints\.UserInfo\.UserInfoRequestValidator')
### Methods

## IUserInfoRequestValidator\.ValidateAsync\(UserInfoRequest, ClientRequest\) Method {#Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.UserInfoRequest,Abblix.Oidc.Server.Model.ClientRequest)}

Asynchronously validates a user info request and generates a validation result\.

```csharp
System.Threading.Tasks.Task<Abblix.Utils.Result<Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.ValidUserInfoRequest,Abblix.Oidc.Server.Common.OidcError>> ValidateAsync(Abblix.Oidc.Server.Model.UserInfoRequest userInfoRequest, Abblix.Oidc.Server.Model.ClientRequest clientRequest);
```
#### Parameters

###### `userInfoRequest` [UserInfoRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Model.UserInfoRequest 'Abblix\.Oidc\.Server\.Model\.UserInfoRequest') {#Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.IUserInfoRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.UserInfoRequest,Abblix.Oidc.Server.Model.ClientRequest).userInfoRequest}

The user info request to validate\.

###### `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.UserInfo.Interfaces.IUserInfoRequestValidator.ValidateAsync(Abblix.Oidc.Server.Model.UserInfoRequest,Abblix.Oidc.Server.Model.ClientRequest).clientRequest}

Additional client request information for contextual validation\.

#### 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')[ValidUserInfoRequest](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Endpoints.UserInfo.Interfaces.ValidUserInfoRequest 'Abblix\.Oidc\.Server\.Endpoints\.UserInfo\.Interfaces\.ValidUserInfoRequest')[,](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 [System\.Threading\.Tasks\.Task](https://learn.microsoft.com/en-us/dotnet/api/system.threading.tasks.task 'System\.Threading\.Tasks\.Task') representing the asynchronous operation,
            which upon completion will yield a [Abblix\.Utils\.Result&lt;&gt;](https://learn.microsoft.com/en-us/dotnet/api/abblix.utils.result-2 'Abblix\.Utils\.Result\`2')\.
