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

## IOidcEndpointResolver Interface

Resolves the absolute URL an OIDC endpoint is served at in the running application\.

```csharp
public interface IOidcEndpointResolver
```

### Remarks
Both transport adapters register an implementation, so host code that needs one of these URLs \- an external
identity provider's callback pointing back at the authorization endpoint, say \- is written once and keeps
working when the host swaps one adapter for the other\. Each adapter answers from what it actually mapped:
MVC from its controller routes, Minimal API from its named endpoints, so a route override or a group prefix
is reflected without the caller knowing either exists\.
### Methods

## IOidcEndpointResolver\.Resolve\(OidcEndpoints\) Method {#Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver.Resolve(Abblix.Oidc.Server.Common.Configuration.OidcEndpoints)}

Returns the absolute URL of [endpoint](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver#Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver.Resolve(Abblix.Oidc.Server.Common.Configuration.OidcEndpoints).endpoint 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IOidcEndpointResolver\.Resolve\(Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints\)\.endpoint') for the current request\.

```csharp
System.Uri? Resolve(Abblix.Oidc.Server.Common.Configuration.OidcEndpoints endpoint);
```
#### Parameters

###### `endpoint` [OidcEndpoints](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcEndpoints 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints') {#Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver.Resolve(Abblix.Oidc.Server.Common.Configuration.OidcEndpoints).endpoint}

The endpoint to resolve\. Exactly one flag, never a combination: [All](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcEndpoints#Abblix.Oidc.Server.Common.Configuration.OidcEndpoints.All 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints\.All') and
[Base](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcEndpoints#Abblix.Oidc.Server.Common.Configuration.OidcEndpoints.Base 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints\.Base') name a set rather than an endpoint and resolve to nothing\.

#### Returns
[System\.Uri](https://learn.microsoft.com/en-us/dotnet/api/system.uri 'System\.Uri')  
The endpoint's absolute URL, or `null` when it is not mapped \- because the endpoint is disabled in
[EnabledEndpoints](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions#Abblix.Oidc.Server.Common.Configuration.OidcOptions.EnabledEndpoints 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions\.EnabledEndpoints'), or because its route takes parameters this contract cannot
supply, which today is the per\-client configuration endpoint of
[RegisterClient](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcEndpoints#Abblix.Oidc.Server.Common.Configuration.OidcEndpoints.RegisterClient 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints\.RegisterClient')\.
