Взаимодействие с EWS с помощью управляемого API EWS
Сведения об использовании управляемого API EWS для связи с EWS в Exchange.
Примечание.
Мы удаляем возможность использования обычной проверки подлинности в Exchange Online для EWS с октября 2022 г.: Прекращение поддержки обычной проверки подлинности в Exchange Online. Вместо этого следует использовать проверку подлинности OAuth. Проверка подлинности приложения EWS с помощью OAuth
Класс ExchangeService в управляемом API EWS содержит методы и свойства, которые используются для настройки учетных данных пользователей, идентификации конечной точки EWS, отправки и получения сообщений SOAP и настройки привязки для связи с EWS. Прежде чем использовать управляемый API EWS для выполнения какой-либо задачи, необходимо создать экземпляр класса ExchangeService и привязать его к EWS.
После того как вы настроили объект ExchangeService с учетными данными пользователя и конечной точкой EWS, любой объект почтового ящика, который ссылается на объект ExchangeService может использовать следующие типы методов для связи с EWS:
- Методы объектов ExchangeService — все методы объекта ExchangeService, которые не наследуются от базового типа Object совершают вызовы в EWS.
- Методы типа элемента почтового ящика Exchange и папки.
Таблица 1. Методы типа элементов и папок почтового ящика, взаимодействующих с EWS
Method | Что делает | Операции, которые он вызывает |
---|---|---|
Load |
Получает свойства элемента, вложения или объекта конфигурации пользователя. |
Операция GetItem Операция GetAttachment Операция GetUserConfiguration |
Bind |
Заполняет новый элемент на клиенте данными из существующего элемента на сервере. |
Операция GetItem |
Save |
Сохраняет копию клиентского элемента на сервере. |
Операция UpdateItem Операция UpdateFolder Операция CreateItem Операция CreateFolder |
Обновление |
Обновляет сервер, используя изменения, внесенных на клиенте. Для элементов и папок метод Update использует операцию UpdateItem и операцию UpdateFolder. |
Операция UpdateItem Операция UpdateFolder |
Удаление |
Удаляет элемент на сервере. Для элементов и папок метод Delete использует операцию DeleteFolder. |
Операция DeleteItem Операция DeleteFolder |
Copy |
Создает копию элемента или папки на сервере. |
Операция CopyItem Операция CopyFolder |
Move |
Перемещает элементы или папки на сервере. |
Операция MoveItem Операция MoveFolder |
Для использования управляемого API EWS для связи с EWS
Создайте экземпляр класса ExchangeService.
ExchangeService service = new ExchangeService();
Примечание.
Создание экземпляра ExchangeService с пустым конструктором создаст экземпляр, привязанный к последней известной версии Exchange. Кроме того, можно указать определенную версию Exchange, указав версию в качестве параметра.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
Настройте учетные данные пользователя, который отправляет запросы на сервер Exchange. Если вы хотите подключиться к EWS с компьютера, который вошел в домен, используя учетные данные аутентифицированного пользователя, задайте свойству UseDefaultCredentials на объекте ExchangeService значение true.
// Connect by using the default credentials of the authenticated user. service.UseDefaultCredentials = true;
Если вы не хотите подключаться с использованием стандартных учетных данных пользователя, настройте свойство Credentials на объекте ExchangeService, чтобы явно указать учетные данные другого пользователя. Если вы используете Exchange Online или Exchange Online в составе Office 365, вы будете использовать обычную проверку подлинности только по имени пользователя и паролю. Для проверки подлинности NTLM требуется доменное имя.
// Connect by using the credentials of user1 at contoso.com. service.Credentials = new WebCredentials("user1@contoso.com", "password");
Вы также можете указать учетные данные пользователя, используя доменное имя и пароль пользователя.
// Connect by using the credentials of contoso/user1. service.Credentials = new WebCredentials("user1", "password", "contoso");
Примечание.
Если свойство UseDefaultCredentials имеет значение true, значение свойства Credentials игнорируется.
Задайте URL-адрес конечной точки EWS. Этот URL-адрес находит файл exchange.asmx на сервере клиентского доступа.
// Use Autodiscover to set the URL endpoint. service.AutodiscoverUrl("user1@contoso.com");
Примечание.
Хотя свойство Url для ExchangeService можно явно задать как жестко запрограммированное значение, рекомендуется использовать вместо него службу автообнаружения по следующим причинам.
- Автообнаружение определяет лучшую конечную точку для указанного пользователя (конечную точку, которая ближе всех к серверу почтового ящика пользователя).
- URL-адрес EWS может измениться при развертывании новых серверов клиентского доступа. В этом сценарии использование Автообнаружения означает, что изменения кода не нужны.
- Необходимо явно установить URL-адрес или вызвать AutodiscoverUrl, но не следует делать и то и другое.