public static IApplicationBuilder UseAuthenticationChallenge(this IApplicationBuilder builder, OidcAuthenticationChallengeMiddlewareOptions options) { EnsureArg.IsNotNull(builder, nameof(builder)); EnsureArg.IsNotNull(options, nameof(options)); var provider = builder.ApplicationServices.GetService <IAuthenticationSchemeProvider>(); if (provider != null) { if (provider.GetDefaultChallengeSchemeAsync().Result?.Name == AuthenticationKeys.OidcScheme) { builder.UseMiddleware <OidcAuthenticationChallengeMiddleware>(Options.Create(options)); //naosOptions.Context.Messages.Add($"naos application builder: authentication challenge"); } // TODO: register other middleware for different authentication schemes (easyauth?) } return(builder); }
/// <summary> /// Enables correlation/request ids for the API request/responses. /// </summary> /// <param name="naosOptions"></param> /// <param name="options"></param> public static NaosApplicationContextOptions UseAuthenticationChallenge(this NaosApplicationContextOptions naosOptions, OidcAuthenticationChallengeMiddlewareOptions options) { EnsureArg.IsNotNull(naosOptions, nameof(naosOptions)); EnsureArg.IsNotNull(options, nameof(options)); var provider = naosOptions.Context.Application.ApplicationServices.GetService <IAuthenticationSchemeProvider>(); if (provider != null) { if (provider.GetDefaultChallengeSchemeAsync().Result?.Name == Authentication.OpenIdConnect.OpenIdConnectDefaults.AuthenticationScheme) { naosOptions.Context.Application.UseMiddleware <OidcAuthenticationChallengeMiddleware>(Options.Create(options)); naosOptions.Context.Messages.Add("naos application builder: authentication challenge"); } // TODO: register other middleware for different authentication schemes (easyauth?) } return(naosOptions); }