private static void SetupCustomConfigProviders(
            IDictionary <string, IAuthenticationProvider> authenticationProviders,
            IList <Type> discoveredProviders,
            ProviderConfiguration providerConfig)
        {
            authenticationProviders.ThrowIfNull("authenticationProviders");
            discoveredProviders.ThrowIfNull("discoveredProviders");
            providerConfig.ThrowIfNull("providerConfig");
            providerConfig.Providers.ThrowIfNull("providerConfig.Providers");

            foreach (ProviderKey provider in providerConfig.Providers)
            {
                var discoveredProvider = DiscoverProvider(discoveredProviders, provider);

                AddProviderToDictionary(authenticationProviders, discoveredProvider, false);
            }
        }