Что происходит с customUserNamePasswordValidatorType? - PullRequest
9 голосов
/ 26 октября 2010

Я создал пользовательский валидатор имени пользователя / пароля для службы WCF и наткнулся на элемент конфигурации customUserNamePasswordValidatorType.Я смог заставить свой код работать, следуя примерам, но я просто не понимаю, что происходит.К сожалению, статья MSDN не предоставляет подробностей.

Вот пример, который предоставляет Microsoft:

<serviceCredentials>
  <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Microsoft.ServiceModel.Samples.CalculatorService.CustomUserNameValidator, service" />
</serviceCredentials>

Я пытаюсь понять, что эти двапараметры для customUserNamePasswordValidatorType: "Microsoft.ServiceModel.Samples.CalculatorService.CustomUserNameValidator" и "service".

Может кто-нибудь помочь мне понять, что означают эти параметры?

Спасибо!

Ответы [ 2 ]

12 голосов
/ 26 октября 2010

Этот первый параметр является полностью определенным именем функции пользовательской проверки. Второй параметр - это имя сборки, в которой содержится функция.

Взято из гораздо лучшего примера о том, как использовать пользовательские валидаторы (слегка измененные в соответствии с вашим примером)

namespace Microsoft.ServiceModel.Samples.CalculatorService
{
    public class CustomUserNameValidator : UserNamePasswordValidator
    {
     // This method validates users. It allows in two users, 
     // test1 and test2 with passwords 1tset and 2tset respectively.
     // This code is for illustration purposes only and 
     // MUST NOT be used in a production environment because it 
     // is NOT secure.
     public override void Validate(string userName, string password)
     {
      if (null == userName || null == password)
      {
       throw new ArgumentNullException();
      }

      if (!(userName == "test1" && password == "1tset") && !(userName == "test2" && password == "2tset"))
      {
       throw new FaultException("Unknown Username or Incorrect Password");
       }
      }
     }
}

Вышеуказанное будет выполнено внутри сборки с именем service.

6 голосов
/ 26 октября 2010

Первая часть - это имя класса, полностью определенное пространством имен, вторая - это сборка, в которой находится класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...