Тестирование службы WCF, которая использует IdentityPrincipal - PullRequest
1 голос
/ 05 февраля 2012

Я хочу написать несколько тестов для веб-службы, которую я создаю.Проблема в том, что эта служба использует аутентификацию и авторизацию на основе членства и роли поставщика.А методы внутри службы используют ServiceSecurityContext.Current.Identity для доступа к информации о текущем пользователе.

Теперь я не уверен, как я могу проверить такой сервис?Можно ли как-то издеваться над ServiceSecurityContext?Или, может быть, мне просто нужно создать HostedService в моем тестовом проекте и запустить его при тестовом запуске?А может, мне вообще не стоит это проверять?

1 Ответ

1 голос
/ 05 февраля 2012

Я бы порекомендовал скрыть это свойство за собственным интерфейсом, чтобы обеспечить легкую насмешку и внедрение экземпляра этого класса в ваш сервис.Это также позволит вам изменить механизм получения текущего идентификатора, не затрагивая многие файлы кода.

public interface IUserProvider 
{
  IIdentity Identity { get; }
}

public class UserProvider : IUserProvider
{
  public IIdentity Identity 
  {
    get { return ServiceSecurityContext.Current.Identity; }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...