/// <summary> /// Initializes the provider. /// </summary> /// <param name="config">A collection of the name/value pairs representing the provider-specific /// attributes specified in the configuration for this provider.</param> /// <param name="name">The friendly name of the provider.</param> /// <exception cref="ArgumentNullException">The name of the provider is null.</exception> /// <exception cref="InvalidOperationException">An attempt is made to call <see cref="Initialize(System.String,System.Collections.Specialized.NameValueCollection)"></see> on a provider after the provider has already been initialized.</exception> /// <exception cref="ArgumentException">The name of the provider has a length of zero.</exception> public override void Initialize(string name, NameValueCollection config) { // Initialize values from Web.config. if (null == config) { throw (new ArgumentNullException("config")); } if (string.IsNullOrEmpty(name)) { name = "NHibernateRoleProvider"; } if (string.IsNullOrEmpty(config["description"])) { config.Remove("description"); config.Add("description", "NHibernate Role Provider"); } // Call the base class implementation. base.Initialize(name, config); // Load configuration data. application = NHibernateProviderEntityHelper.CreateOrLoadApplication( ConfigurationUtil.GetConfigValue(config["applicationName"], HostingEnvironment.ApplicationVirtualPath)); }
/// <summary> /// Initializes the provider. /// </summary> /// <param name="config">A collection of the name/value pairs representing the provider-specific /// attributes specified in the configuration for this provider.</param> /// <param name="name">The friendly name of the provider.</param> /// <exception cref="ArgumentNullException">The name of the provider is null.</exception> /// <exception cref="InvalidOperationException">An attempt is made to call <see cref="Initialize(System.String,System.Collections.Specialized.NameValueCollection)"></see> on a provider after the provider has already been initialized.</exception> /// <exception cref="ArgumentException">The name of the provider has a length of zero.</exception> public override void Initialize(string name, NameValueCollection config) { // Initialize values from Web.config. if (null == config) { throw (new ArgumentNullException("config")); } if (string.IsNullOrEmpty(name)) { name = "NHibernateMembershipProvider"; } if (string.IsNullOrEmpty(config["description"])) { config.Remove("description"); config.Add("description", "NHibernate Membership Provider"); } // Call the base class implementation. base.Initialize(name, config); // Load configuration data. application = NHibernateProviderEntityHelper.CreateOrLoadApplication( ConfigurationUtil.GetConfigValue(config["applicationName"], HostingEnvironment.ApplicationVirtualPath)); requiresQuestionAndAnswer = Convert.ToBoolean(ConfigurationUtil.GetConfigValue(config["requiresQuestionAndAnswer"], "False")); requiresUniqueEmail = Convert.ToBoolean(ConfigurationUtil.GetConfigValue(config["requiresUniqueEmail"], "True")); enablePasswordRetrieval = Convert.ToBoolean(ConfigurationUtil.GetConfigValue(config["enablePasswordRetrieval"], "True")); enablePasswordReset = Convert.ToBoolean(ConfigurationUtil.GetConfigValue(config["enablePasswordReset"], "True")); maxInvalidPasswordAttempts = Convert.ToInt32(ConfigurationUtil.GetConfigValue(config["maxInvalidPasswordAttempts"], "5")); passwordAttemptWindow = Convert.ToInt32(ConfigurationUtil.GetConfigValue(config["passwordAttemptWindow"], "10")); minRequiredPasswordLength = Convert.ToInt32(ConfigurationUtil.GetConfigValue(config["minRequiredPasswordLength"], "7")); minRequiredNonAlphanumericCharacters = Convert.ToInt32(ConfigurationUtil.GetConfigValue(config["minRequiredAlphaNumericCharacters"], "1")); passwordStrengthRegularExpression = Convert.ToString(ConfigurationUtil.GetConfigValue(config["passwordStrengthRegularExpression"], string.Empty)); // Initialize the password format. switch (ConfigurationUtil.GetConfigValue(config["passwordFormat"], "Hashed")) { case "Hashed": passwordFormat = MembershipPasswordFormat.Hashed; break; case "Encrypted": passwordFormat = MembershipPasswordFormat.Encrypted; break; case "Clear": passwordFormat = MembershipPasswordFormat.Clear; break; default: throw ExceptionUtil.NewProviderException(this, "password format not supported"); } // Get encryption and decryption key information from the configuration. Configuration cfg = WebConfigurationManager.OpenWebConfiguration(HostingEnvironment.ApplicationVirtualPath); machineKey = (MachineKeySection) cfg.GetSection("system.web/machineKey"); if ("Auto".Equals(machineKey.Decryption)) { // Create our own key if one has not been specified. machineKey.DecryptionKey = KeyCreator.CreateKey(24); machineKey.ValidationKey = KeyCreator.CreateKey(64); } }