У меня очень странная проблема, и я убежден, что это просто глупость, которую я упускаю из виду. Используя управляемый API EWS, я пытаюсь подключиться к почтовому ящику, чтобы прочитать контакты. Первоначально я использовал учетные данные по умолчанию, и в этом случае автоматическое обнаружение работало. Проблема в том, что позже мы хотим запустить это на сервере и выдать себя за пользователя, поэтому я изменил его, указав учетные данные вручную. Это сломалось даже при использовании моих собственных учетных данных.
Например, это сработало:
service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.AutodiscoverUrl("user@example.com", redirect => true);
Это не так:
service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.UseDefaultCredentials = false;
service.Credentials = new NetworkCredential("user", "pass", "EXAMPLE_DOMAIN");
service.AutodiscoverUrl("user@example.com", redirect => true);
Указанные сетевые учетные данные должны быть точно такими же, как учетные данные по умолчанию, но при включении трассировки я получаю ответ «401 Unauthorized» во втором случае, поэтому он не действует, как если бы он был таким же. *
Чего мне не хватает?