static SqlAuthenticationProviderManager() { var activeDirectoryAuthProvider = new ActiveDirectoryAuthenticationProvider(); SqlAuthenticationProviderConfigurationSection configurationSection = null; try { // New configuration section "SqlClientAuthenticationProviders" for Microsoft.Data.SqlClient accepted to avoid conflicts with older one. configurationSection = FetchConfigurationSection <SqlClientAuthenticationProviderConfigurationSection>(SqlClientAuthenticationProviderConfigurationSection.Name); if (null == configurationSection) { // If configuration section is not yet found, try with old Configuration Section name for backwards compatibility configurationSection = FetchConfigurationSection <SqlAuthenticationProviderConfigurationSection>(SqlAuthenticationProviderConfigurationSection.Name); } } catch (ConfigurationErrorsException e) { // Don't throw an error for invalid config files SqlClientEventSource.Log.TryTraceEvent("Unable to load custom SqlAuthenticationProviders or SqlClientAuthenticationProviders. ConfigurationManager failed to load due to configuration errors: {0}", e); } Instance = new SqlAuthenticationProviderManager(configurationSection); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryIntegrated, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryPassword, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryInteractive, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryServicePrincipal, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryDeviceCodeFlow, activeDirectoryAuthProvider); }
/// <summary> /// Constructor. /// </summary> public SqlAuthenticationProviderManager(SqlAuthenticationProviderConfigurationSection configSection) { _typeName = GetType().Name; _providers = new ConcurrentDictionary <SqlAuthenticationMethod, SqlAuthenticationProvider>(); var authenticationsWithAppSpecifiedProvider = new HashSet <SqlAuthenticationMethod>(); _authenticationsWithAppSpecifiedProvider = authenticationsWithAppSpecifiedProvider; if (configSection == null) { return; } // Create user-defined auth initializer, if any. // if (!string.IsNullOrEmpty(configSection.InitializerType)) { try { var initializerType = Type.GetType(configSection.InitializerType, true); _initializer = (SqlAuthenticationInitializer)Activator.CreateInstance(initializerType); _initializer.Initialize(); } catch (Exception e) { throw SQL.CannotCreateSqlAuthInitializer(configSection.InitializerType, e); } } // add user-defined providers, if any. // if (configSection.Providers != null && configSection.Providers.Count > 0) { foreach (ProviderSettings providerSettings in configSection.Providers) { SqlAuthenticationMethod authentication = AuthenticationEnumFromString(providerSettings.Name); SqlAuthenticationProvider provider; try { var providerType = Type.GetType(providerSettings.Type, true); provider = (SqlAuthenticationProvider)Activator.CreateInstance(providerType); } catch (Exception e) { throw SQL.CannotCreateAuthProvider(authentication.ToString(), providerSettings.Type, e); } if (!provider.IsSupported(authentication)) { throw SQL.UnsupportedAuthenticationByProvider(authentication.ToString(), providerSettings.Type); } _providers[authentication] = provider; authenticationsWithAppSpecifiedProvider.Add(authentication); } } }
static SqlAuthenticationProviderManager() { var activeDirectoryAuthNativeProvider = new ActiveDirectoryNativeAuthenticationProvider(); SqlAuthenticationProviderConfigurationSection configurationSection = null; try { configurationSection = (SqlAuthenticationProviderConfigurationSection)ConfigurationManager.GetSection(SqlAuthenticationProviderConfigurationSection.Name); } catch (ConfigurationErrorsException) { // Don't throw an error for invalid config files } Instance = new SqlAuthenticationProviderManager(configurationSection); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryIntegrated, activeDirectoryAuthNativeProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryPassword, activeDirectoryAuthNativeProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryInteractive, activeDirectoryAuthNativeProvider); }
static SqlAuthenticationProviderManager() { var activeDirectoryAuthProvider = new ActiveDirectoryAuthenticationProvider(); SqlAuthenticationProviderConfigurationSection configurationSection = null; try { configurationSection = (SqlAuthenticationProviderConfigurationSection)ConfigurationManager.GetSection(SqlAuthenticationProviderConfigurationSection.Name); } catch (ConfigurationErrorsException e) { // Don't throw an error for invalid config files SqlClientEventSource.Log.TraceEvent("Unable to load custom SqlAuthenticationProviders. ConfigurationManager failed to load due to configuration errors: {0}", e); } Instance = new SqlAuthenticationProviderManager(configurationSection); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryIntegrated, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryPassword, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryInteractive, activeDirectoryAuthProvider); Instance.SetProvider(SqlAuthenticationMethod.ActiveDirectoryServicePrincipal, activeDirectoryAuthProvider); }
static SqlAuthenticationProviderManager() { SqlAuthenticationProviderConfigurationSection configurationSection = null; try { // New configuration section "SqlClientAuthenticationProviders" for Microsoft.Data.SqlClient accepted to avoid conflicts with older one. configurationSection = FetchConfigurationSection <SqlClientAuthenticationProviderConfigurationSection>(SqlClientAuthenticationProviderConfigurationSection.Name); if (null == configurationSection) { // If configuration section is not yet found, try with old Configuration Section name for backwards compatibility configurationSection = FetchConfigurationSection <SqlAuthenticationProviderConfigurationSection>(SqlAuthenticationProviderConfigurationSection.Name); } } catch (ConfigurationErrorsException e) { // Don't throw an error for invalid config files SqlClientEventSource.Log.TryTraceEvent("static SqlAuthenticationProviderManager: Unable to load custom SqlAuthenticationProviders or SqlClientAuthenticationProviders. ConfigurationManager failed to load due to configuration errors: {0}", e); } Instance = new SqlAuthenticationProviderManager(configurationSection); SetDefaultAuthProviders(Instance); }
/// <summary> /// Constructor. /// </summary> public SqlAuthenticationProviderManager(SqlAuthenticationProviderConfigurationSection configSection = null) { var methodName = "Ctor"; _typeName = GetType().Name; _providers = new ConcurrentDictionary <SqlAuthenticationMethod, SqlAuthenticationProvider>(); var authenticationsWithAppSpecifiedProvider = new HashSet <SqlAuthenticationMethod>(); _authenticationsWithAppSpecifiedProvider = authenticationsWithAppSpecifiedProvider; if (configSection == null) { _sqlAuthLogger.LogInfo(_typeName, methodName, "Neither SqlClientAuthenticationProviders nor SqlAuthenticationProviders configuration section found."); return; } if (!string.IsNullOrEmpty(configSection.ApplicationClientId)) { _applicationClientId = configSection.ApplicationClientId; _sqlAuthLogger.LogInfo(_typeName, methodName, "Received user-defined Application Client Id"); } else { _sqlAuthLogger.LogInfo(_typeName, methodName, "No user-defined Application Client Id found."); } // Create user-defined auth initializer, if any. if (!string.IsNullOrEmpty(configSection.InitializerType)) { try { var initializerType = Type.GetType(configSection.InitializerType, true); _initializer = (SqlAuthenticationInitializer)Activator.CreateInstance(initializerType); _initializer.Initialize(); } catch (Exception e) { throw SQL.CannotCreateSqlAuthInitializer(configSection.InitializerType, e); } _sqlAuthLogger.LogInfo(_typeName, methodName, "Created user-defined SqlAuthenticationInitializer."); } else { _sqlAuthLogger.LogInfo(_typeName, methodName, "No user-defined SqlAuthenticationInitializer found."); } // add user-defined providers, if any. if (configSection.Providers != null && configSection.Providers.Count > 0) { foreach (ProviderSettings providerSettings in configSection.Providers) { SqlAuthenticationMethod authentication = AuthenticationEnumFromString(providerSettings.Name); SqlAuthenticationProvider provider; try { var providerType = Type.GetType(providerSettings.Type, true); provider = (SqlAuthenticationProvider)Activator.CreateInstance(providerType); } catch (Exception e) { throw SQL.CannotCreateAuthProvider(authentication.ToString(), providerSettings.Type, e); } if (!provider.IsSupported(authentication)) { throw SQL.UnsupportedAuthenticationByProvider(authentication.ToString(), providerSettings.Type); } _providers[authentication] = provider; authenticationsWithAppSpecifiedProvider.Add(authentication); _sqlAuthLogger.LogInfo(_typeName, methodName, string.Format("Added user-defined auth provider: {0} for authentication {1}.", providerSettings?.Type, authentication)); } } else { _sqlAuthLogger.LogInfo(_typeName, methodName, "No user-defined auth providers."); } }