1.11.0 (2026-05-05)
Features Added
- Added
CredentialResolverabstract class — an extensibility hook that lets credential providers participate in the configuration-driven credential resolution pipeline. Resolvers are invoked in registration order until one produces anAuthenticationTokenProviderfor a given configuration section. - Added
IConfiguration.GetCredential(...)extension overloads onConfigurationExtensionsthat walk a chain ofCredentialResolverinstances against a named credential section, with optionalconfigureOverridesto mutate the section in-flight. - Added
IConfiguration.GetClientSettings<T>(...)extension overloads that bind aClientSettings-derived type and resolve itsCredentialvia the resolver chain. - Added
AddCredentialResolver<T>extension methods onIServiceCollectionandIHostApplicationBuilderthat register aCredentialResolveronce per implementation type (idempotent). - The DI
AddClient<TClient, TSettings>/AddKeyedClient<TClient, TSettings>paths now auto-resolve credentials from the registered resolver chain, so callers no longer need to wire up provider-specific helpers likeWithAzureCredentialexplicitly when a resolver is registered. - Resolving the same credential section more than once returns the same
AuthenticationTokenProviderinstance.
Breaking Changes
IClientBuilderno longer inherits fromIHostApplicationBuilder. The internalClientBuilderimplementation now uses composition instead of inheritance.PostConfigurereturn type changed fromIHostApplicationBuildertoIClientBuilder.AddClientandAddKeyedClientcontinue to returnIClientBuilder.