身份验证配置:使用Thinktecture.IdentityModel.WebApi.Authentication.Handler(V 1.1)支持多个JWT提供程序

时间:2019-11-25 06:36:40

标签: authentication jwt thinktecture-ident-model webapi

我的要求是在我的代码中支持多个JWT提供程序。

我正在使用Thinktecture dll。 [IdentityModel.WebApi.Authentication.Handler命名空间]

我的SecurityConfig如下所示:

// SecurityConfig类

 public class SecurityConfig
    {
        /// <summary>
        /// Adds security configuration to the application.
        /// </summary>
        /// <param name="config">The application's HttpConfiguration object.</param>
        /// <param name="container">The application's IoC container.</param>
        public static void AddSecurity(HttpConfiguration config, IContainer container)
        {

            var authenticationConfiguration = CreateConfiguration(container);
            config.MessageHandlers.Add(new AuthenticationHandler(authenticationConfiguration));
            config.MessageHandlers.Add(new BasicAuthenticationHandler(container));
        }


        private static AuthenticationConfiguration CreateConfiguration(IContainer container)
        {
            var config = new AuthenticationConfiguration
            {
                RequireSsl = false,
                SetPrincipalOnRequestInstance = true,
                InheritHostClientIdentity = true
            };

                 //Initialise certificate1 and certificate2
                 // Initialize issuer1, audience1, issuer2, audience2

                    config.AddJsonWebToken(issuer1, audience1, new X509Certificate2(certificate1));
                    config.AddJsonWebToken(issuer2, audience2, new X509Certificate2(certificate2));
                  }
            }


            return config;
        }
}

//入门班

  public class Startup
    {


     public void Configuration(IAppBuilder appBuilder)
        {

        // Other initialization 
            SecurityConfig.AddSecurity(httpConfiguration, iocContainer);

            appBuilder.UseWebApi(httpConfiguration);
        }
}

我遇到以下错误,该错误明确指出不允许多个JWT提供程序使用AuthenticationConfiguration。

重复的身份验证条目 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.InvalidOperationException:身份验证条目重复

有人可以帮我吗?

0 个答案:

没有答案