public override void Initialize(string name, NameValueCollection config)
{
if (config == null)
{
throw new ArgumentNullException("config");
}
if (string.IsNullOrEmpty(name))
{
name = "DbMembershipProvider";
}
if (Utils.IsMono)
{
// Mono dies with a "Unrecognized attribute: description" if a description is part of the config.
if (!string.IsNullOrEmpty(config["description"]))
{
config.Remove("description");
}
}
else
{
if (string.IsNullOrEmpty(config["description"]))
{
config.Remove("description");
config.Add("description", "Generic Database Membership Provider");
}
}
base.Initialize(name, config);
// Connection String
if (config["connectionStringName"] == null)
{
config["connectionStringName"] = "BlogEngine";
}
this.connStringName = config["connectionStringName"];
config.Remove("connectionStringName");
// Table Prefix
if (config["tablePrefix"] == null)
{
config["tablePrefix"] = "be_";
}
this.tablePrefix = config["tablePrefix"];
config.Remove("tablePrefix");
// Parameter character
if (config["parmPrefix"] == null)
{
config["parmPrefix"] = "@";
}
this.parmPrefix = config["parmPrefix"];
config.Remove("parmPrefix");
// Application Name
if (config["applicationName"] == null)
{
config["applicationName"] = "BlogEngine";
}
this.applicationName = config["applicationName"];
config.Remove("applicationName");
// Password Format
if (config["passwordFormat"] == null)
{
config["passwordFormat"] = "Hashed";
this.passwordFormat = MembershipPasswordFormat.Hashed;
}
else if (string.Compare(config["passwordFormat"], "clear", true) == 0)
{
this.passwordFormat = MembershipPasswordFormat.Clear;
}
else
{
this.passwordFormat = MembershipPasswordFormat.Hashed;
}
config.Remove("passwordFormat");
// Throw an exception if unrecognized attributes remain
if (config.Count > 0)
{
var attr = config.GetKey(0);
if (!string.IsNullOrEmpty(attr))
{
throw new ProviderException(string.Format("Unrecognized attribute: {0}", attr));
}
}
}