...
    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

Hosted by uCoz