Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }