Table of Contents

Class DynamicProviderOptions

Namespace
Fdyay.IdentityServer.Configuration
Assembly
Fdyay.IdentityServer.AspNetCore.dll

How dynamic providers are served, and which kinds this host has registered.

public sealed class DynamicProviderOptions
Inheritance
DynamicProviderOptions
Inherited Members

Properties

PathMatchingCallback

Names the dynamic scheme a request is a callback for, or null when it is for none. When set, it is asked instead of PathPrefix. Duende 8.0.1's, measured.

public Func<HttpContext, Task<string?>>? PathMatchingCallback { get; set; }

Property Value

Func<HttpContext, Task<string>>

Remarks

For a host whose dynamic providers call back somewhere other than {PathPrefix}/{scheme}/… — a path per tenant, say. The callback paths a handler answers are its own options; this only says which scheme's handler a request is handed to.

PathPrefix

Where a dynamic provider's callbacks live. Defaults to /federation.

public PathString PathPrefix { get; set; }

Property Value

PathString

Remarks

A dynamic scheme cannot share a callback path with any other, so each gets one under this prefix — /federation/{scheme}/signin. Static registrations set their own and are untouched.

SignInScheme

The scheme a dynamic provider signs the user in to: the external cookie. Duende's default.

public string SignInScheme { get; set; }

Property Value

string

SignOutScheme

The scheme a dynamic provider signs out of when its upstream says the session ended: this server's session cookie, which is also what it reads as when unset. Duende's default.

public string? SignOutScheme { get; set; }

Property Value

string

SignOutSchemeSetExplicitly

Whether a host set SignOutScheme, rather than it reading as its default. Duende's.

public bool SignOutSchemeSetExplicitly { get; }

Property Value

bool

Remarks

What lets AddAspNetIdentity move the default to ASP.NET Core Identity's cookie without overriding a host that chose: the sign-out scheme follows the session cookie only when nobody named one.

Methods

AddProviderType<THandler, TOptions, TIdentityProvider>(string)

Registers a kind of provider a stored row may name.

public void AddProviderType<THandler, TOptions, TIdentityProvider>(string type) where THandler : IAuthenticationHandler where TOptions : AuthenticationSchemeOptions, new() where TIdentityProvider : IdentityProvider

Parameters

type string

Type Parameters

THandler
TOptions
TIdentityProvider

Remarks

A host adds its own the same way this server adds OpenID Connect, which is the test of whether the mechanism is one: a provider kind that could only be added by editing this library would make "dynamic" mean "dynamic about configuration and static about protocol".

Duende 8.0.1's two refusals, measured, since 0.103.0: a kind is registered once — until then a second registration silently replaced the first — and its TIdentityProvider must have a public ctor(IdentityProvider), which IIdentityProviderFactory makes it through. Both are refused here, when the options are built, rather than when a row of the kind is first read.

FindProviderType(string?)

The registered kind a stored row names, or null when nothing here can serve it.

public DynamicProviderType? FindProviderType(string? type)

Parameters

type string

Returns

DynamicProviderType

Remarks

Duende's name for it; until 0.97.0 it was Find.