...
throw new ArgumentNullException("config");
}
if (string.IsNullOrEmpty(name))
{
name = "XmlMembershipProvider";
}
if (string.IsNullOrEmpty(config["description"]))
{
config.Remove("description");
config.Add("description", "XML Membership Provider");
}
// Инициализировать базовый класс
base.Initialize(name, config);
...
Во-первых, вы проверяете, передана ли вообще какая-то конфигурация. Если для поставщика ничего не сконфигурировано, он не будет работать. Во-вторых, если не указано никакого имени, вы должны инициировать имя по умолчанию, которое требуется инструменту конфигурации для отображения поставщика в своем списке. И, наконец, вы должны добавить описание по умолчанию, если никакого описания поставщика не настроено. Этот заключительный шаг не обязателен, но полезен для инструмента конфигурирования, который запрашивает информацию о поставщике.
Не забудьте вызвать реализацию инициализатора базового класса для правильной инициализации базовых свойств. В приведенном выше коде это делается в последней строке. Далее вы можете начать инициализацию ваших свойств:
...
// Инициализировать значения по умолчанию
_ApplicationName = "DefaultApp";
_EnablePasswordReset = false;
_PasswordStrengthRegEx = @"[\w| !§$%&/()=\-?\*]*";
_MaxInvalidPasswordAttempts = 3;
_MinRequiredNonAlphanUmericChars =1;
_MinRequiredPasswordLength = 5;
_RequiresQuestionAndAnswer = false;
_PasswordFormat = MembershipPasswordFormat.Hashed;
//Теперь пройти по свойствам и инициализировать конфигурированные значения
foreach (string key in config.Keys)
{
switch(key.ToLower() )
{
case "name":
_Name = config[key];
break;
case "applicationname":
_ApplicationName = config[key];
break;
case "filename":
_FileName = config[key];
break;
case "enablepasswordreset":
_EnablePasswordReset = bool.Parse(config[key]);
break;
...
предыдущая следующая страница вначало главы оглавление
1036