При использовании учетных данных, установленных вручную, функция автоматического обнаружения EWS перестает работать - PullRequest
3 голосов
/ 23 февраля 2012

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

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

1 Ответ

3 голосов
/ 22 июня 2012

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

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