При использовании установленных вручную учетных данных EWS автообнаружение перестает работать

Я сталкиваюсь с очень странной проблемой, и я убежден, что это просто глупость, которую я упускаю из виду. Используя управляемый 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 Несанкционированный" во втором случае, поэтому он не действует так, как если бы он был таким же.

Что мне не хватает?

1 ответ

Решение

Хорошо, кажется, вам нужно использовать WebCredential("user", "pass", "EXAMPLE_DOMAIN"), Я не совсем уверен, почему WebCredentials работать, но NetworkCredentials не.

Другие вопросы по тегам