/// <summary> /// System.Configuration.Provider.ProviderBase.Initialize Method /// </summary> /// <param name="name">The friendly name of the provider.</param> /// <param name="config">A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.</param> /// <exception cref="T:System.ArgumentNullException"> /// The name of the provider is null. /// </exception> /// <exception cref="T:System.ArgumentException"> /// The name of the provider has a length of zero. /// </exception> /// <exception cref="T:System.InvalidOperationException"> /// An attempt is made to call <see cref="M:System.Configuration.Provider.ProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection)"/> on a provider after the provider has already been initialized. /// </exception> public override void Initialize(string name, NameValueCollection config) { // Initialize values from web.config. if (config == null) { throw new ArgumentNullException("config"); } if (String.IsNullOrEmpty(name)) { name = "EFRoleProvider"; } if (String.IsNullOrEmpty(config["description"])) { config.Remove("description"); config.Add("description", "Smart-Soft EF Role Provider"); } // Initialize the abstract base class. base.Initialize(name, config); ApplicationName = (string)ProviderUtils.GetConfigValue(config, "applicationName", HostingEnvironment.ApplicationVirtualPath); WriteExceptionsToEventLog = (bool)ProviderUtils.GetConfigValue(config, "writeExceptionsToEventLog", false); // Read connection string. ConnectionStringSettings connectionStringSettings = ConfigurationManager.ConnectionStrings[config["connectionStringName"]]; if (connectionStringSettings == null || connectionStringSettings.ConnectionString.Trim() == string.Empty) { throw new ProviderException("Connection string cannot be blank."); } connectionString = connectionStringSettings.ConnectionString; }