Сегодня я реализовал пользовательский поставщик аутентификации для моей службы WCF. Он может определить, является ли мой пользователь действительным или нет, как и ожидалось.
Итак, теперь у меня есть этот класс:
public class MyCustomValidator : UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
User apiUser = User.Login(userName, password);
// other logic goes here.
}
}
Поведение моего приложения зависит от того, к каким объектам пользователь может получить доступ. Итак, как я могу получить свой объект User отсюда в мой класс обслуживания? Я не вижу очевидного способа, поскольку мой класс обслуживания по умолчанию не наследует ничего, в отличие от контроллеров ASP.NET.
Мой первый инстинкт - настроить статический параметр в MyCustomValidator, а затем прочитать его оттуда, но я подозреваю, что может возникнуть состояние гонки. Кто-нибудь может подтвердить или опровергнуть мои подозрения?
И самое главное: есть ли лучший способ сделать это? Это первый раз, когда я использую WCF, поэтому я не знаю, какие здесь лучшие практики.
Спасибо, что уделили время.