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

## OidcEndpointResolver Class

Answers [IOidcEndpointResolver](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IOidcEndpointResolver') from the route templates the OIDC controllers carry, resolved
through the same tokenized configuration that decided where they were mapped\.

```csharp
public class OidcEndpointResolver : Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver
```

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

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

### Remarks
The Minimal API adapter registers its own implementation of this contract, so host code that needs one of
these URLs is written once and survives a change of adapter\. The enabled\-endpoint set has to be consulted
explicitly here: a route template is a compile\-time constant on the controller action and resolves whether
or not the endpoint is served, where on the Minimal API side a disabled endpoint was never mapped and has
nothing to find\. Both then answer null for an endpoint the host does not serve\.
### Constructors

## OidcEndpointResolver\(IUriResolver, IOptions\<OidcOptions\>\) Constructor {#Abblix.Oidc.Server.Mvc.Features.EndpointResolving.OidcEndpointResolver.OidcEndpointResolver(Abblix.Oidc.Server.Mvc.IUriResolver,Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_)}

Answers [IOidcEndpointResolver](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Interfaces.IOidcEndpointResolver 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IOidcEndpointResolver') from the route templates the OIDC controllers carry, resolved
through the same tokenized configuration that decided where they were mapped\.

```csharp
public OidcEndpointResolver(Abblix.Oidc.Server.Mvc.IUriResolver uriResolver, Microsoft.Extensions.Options.IOptions<Abblix.Oidc.Server.Common.Configuration.OidcOptions> options);
```
#### Parameters

###### `uriResolver` [IUriResolver](https://www.abblix.com/en/docs/api/abblix-oidc-server-mvc/Abblix.Oidc.Server.Mvc.IUriResolver 'Abblix\.Oidc\.Server\.Mvc\.IUriResolver') {#Abblix.Oidc.Server.Mvc.Features.EndpointResolving.OidcEndpointResolver.OidcEndpointResolver(Abblix.Oidc.Server.Mvc.IUriResolver,Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_).uriResolver}

Turns a route template into an absolute URL for the current request\.

###### `options` [Microsoft\.Extensions\.Options\.IOptions&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1')[OidcOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1') {#Abblix.Oidc.Server.Mvc.Features.EndpointResolving.OidcEndpointResolver.OidcEndpointResolver(Abblix.Oidc.Server.Mvc.IUriResolver,Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_).options}

The enabled\-endpoint set, so a disabled endpoint resolves to nothing\.

### Remarks
The Minimal API adapter registers its own implementation of this contract, so host code that needs one of
these URLs is written once and survives a change of adapter\. The enabled\-endpoint set has to be consulted
explicitly here: a route template is a compile\-time constant on the controller action and resolves whether
or not the endpoint is served, where on the Minimal API side a disabled endpoint was never mapped and has
nothing to find\. Both then answer null for an endpoint the host does not serve\.
### Methods

## OidcEndpointResolver\.Resolve\(OidcEndpoints\) Method {#Abblix.Oidc.Server.Mvc.Features.EndpointResolving.OidcEndpointResolver.Resolve(Abblix.Oidc.Server.Common.Configuration.OidcEndpoints)}

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

```csharp
public 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.Mvc.Features.EndpointResolving.OidcEndpointResolver.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\.

Implements [Resolve\(OidcEndpoints\)](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) 'Abblix\.Oidc\.Server\.Common\.Interfaces\.IOidcEndpointResolver\.Resolve\(Abblix\.Oidc\.Server\.Common\.Configuration\.OidcEndpoints\)')

#### 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')\.
