Class ClientTokensExtension
- Namespace
- Arc4u.OAuth2.Extensions
- Assembly
- Arc4u.OAuth2.AspNetCore.dll
Registers the unified Authentication:ClientTokens section: a single section where
heterogeneous client token scenarios coexist, each entry discriminated by its
Scenario property and projected into a named
SimpleKeyValueSettings.
public static class ClientTokensExtension
- Inheritance
-
ClientTokensExtension
- Inherited Members
Properties
Scenario
Resolves an IClientTokenScenario from its discriminator (the
Scenario value), or null when none matches.
Defaults to DefaultScenario(string) (the built-in scenarios). A framework user can reconfigure it via SetScenarioResolver(Func<string, IClientTokenScenario?>) — typically by handling their own discriminators and delegating to DefaultScenario(string) for the rest.
public static Func<string, IClientTokenScenario?> Scenario { get; }
Property Value
Methods
AddClientTokens(IServiceCollection, IConfiguration, string)
Reads the sectionName section and registers a named
SimpleKeyValueSettings per entry, selecting the matching
IClientTokenScenario by the entry's discriminator through Scenario.
Nothing is registered when the section does not exist or is empty. An entry is registered only once per service collection.
public static void AddClientTokens(this IServiceCollection services, IConfiguration configuration, string sectionName = "Authentication:ClientTokens")
Parameters
servicesIServiceCollectionThe service collection.
configurationIConfigurationThe configuration to read the section from, for example
builder.Configuration.sectionNamestringThe section to read. The default is
Authentication:ClientTokens.
Examples
builder.Services.AddClientTokens(builder.Configuration);
Exceptions
- ConfigurationException
An entry has no
Scenario, an unknown scenario, an empty authentication type, or is invalid for its scenario.
DefaultScenario(string)
public static IClientTokenScenario? DefaultScenario(string discriminator)
Parameters
discriminatorstring
Returns
SetScenarioResolver(Func<string, IClientTokenScenario?>)
Reconfigures the scenario resolver. Delegate to DefaultScenario(string) to keep the built-ins.
public static void SetScenarioResolver(Func<string, IClientTokenScenario?> resolver)
Parameters
resolverFunc<string, IClientTokenScenario>
Examples
ClientTokensExtension.SetScenarioResolver(discriminator => discriminator switch
{
"MyCustom" => new MyCustomScenario(),
_ => ClientTokensExtension.DefaultScenario(discriminator)
});