Поделиться через


Операция ConvertId

Найдите сведения об операции ConvertId EWS.

Операция ConvertId Exchange Web Services (EWS) преобразует идентификаторы элементов и папок между форматами, которые принимаются Exchange Online, Exchange Online как часть Office 365 и локальными версиями Exchange, начиная с Exchange Server 2013 года.

Использование операции ConvertId

Следующие идентификаторы можно преобразовать с помощью операции ConvertId :

  • Формат идентификатора для EWS в начальной версии Exchange 2007. Это значение представлено значением EwsLegacyId перечисления в перечислении IdFormat .

  • Формат идентификатора для EWS в Exchange 2007 с пакетом обновления 1 (SP1) или Exchange 2010. Это значение представлено значением EwsId перечисления в IdFormat.

  • Идентификатор MAPI, как в свойстве PR_ENTRYID . Это значение представлено значением EntryId перечисления в перечислении IdFormat .

  • Идентификатор события календаря доступности. Это шестнадцатеричное представление свойства PR_ENTRYID . Это значение представлено значением HexEntryId перечисления в IdFormat.

  • Идентификатор хранилища Exchange. Это значение представлено значением StoreId перечисления в IdFormat. Операция ConvertId не преобразует идентификаторы общедоступных папок из идентификатора EWS в идентификатор хранилища.

  • Идентификатор Outlook Web App. Это значение представлено значением перечисления OwaId в IdFormat

    Передача URL-адресов, созданных из этого идентификатора, в Outlook Web App не поддерживается. Идентификатор Outlook Web App применим к Exchange 2007 и Exchange 2010. Outlook Web App для Exchange Online и версий Exchange, начиная с Exchange Server 2013 года, использует идентификаторы EWS.

Операция ConvertId не работает должным образом при преобразовании идентификаторов общедоступных папок из идентификатора EWS в идентификатор хранилища в Exchange Online и Exchange 2013. Вы можете вручную обновить идентификатор, возвращаемый в качестве обходного решения. Чтобы вручную обновить идентификатор, выполните следующие действия:

  1. В коде приложения определите, находится ли целевой элемент или папка в общедоступной папке.

  2. Декодирование строки идентификатора в кодировке Base64.

  3. Убедитесь, что байт типа (21-й байт) имеет значение 7. Значение 7 указывает, что идентификатор имеет неправильный формат.

  4. Пропустите первые четыре байта. Они должны быть равны нулю.

  5. Обновите следующие 16 байтов следующим идентификатором GUID: 1A47390AA6611CD9BC800AA002FC45A

  6. Обновите следующий байт (тип byte) со значением 9.

  7. Измените идентификатор на строку в кодировке Base64.

Примечание.

Операция ConvertId проверяет, имеет ли заданный SMTP-адрес допустимый формат. Операция не определяет, представляет ли SMTP-адрес допустимый почтовый ящик.

Операция ConvertId может использовать заголовки SOAP, перечисленные в следующей таблице.

Таблица 1. Заголовки SOAP операции ConvertId

Header Элемент Описание
Олицетворение
ExchangeImpersonation
Определяет пользователя, которого олицетворяет клиентское приложение. Это применимо к запросу.
RequestVersion
RequestServerVersion
Определяет версию схемы для запроса операции. Это применимо к запросу.
ServerVersion
ServerVersionInfo
Определяет версию сервера, который ответил на запрос. Это применимо к ответу.

Пример запроса операции ConvertId

В следующем примере запроса ConvertId показано, как преобразовать идентификатор EWS в идентификатор Outlook Web App.

Элемент RequestServerVersion в заголовке SOAP должен иметь значение Exchange2007_SP1 или более поздней, чтобы эта операция работала.

Примечание.

Идентификатор элемента сокращен для сохранения удобочитаемости.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010"/>
  </soap:Header>
  <soap:Body>
    <ConvertId xmlns="https://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types"
               DestinationFormat="OwaId">
      <SourceIds>
        <t:AlternateId Format="EwsId" Id="AAMkAGZhN2IxYTA0LWNiNzItN="
                       Mailbox="user1@example.com"/>
      </SourceIds>
    </ConvertId>
  </soap:Body>
</soap:Envelope>

Пример ответа операции ConvertId

В следующем примере показан успешный ответ на запрос ConvertId . Этот пример ответа содержит идентификатор Outlook Web App.

Примечание.

Идентификатор Outlook Web App сокращен, чтобы сохранить удобочитаемость.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <t:ServerVersionInfo MajorVersion="8" MinorVersion="1" 
                         MajorBuildNumber="191" MinorBuildNumber="0" 
                         Version="Exchange2010" 
                         xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <ResponseMessages>
        <ConvertIdResponseMessage ResponseClass="Success">
          <ResponseCode>NoError</ResponseCode>
          <AlternateId xsi:type="t:AlternateIdType" Format="OwaId" Id="RgAAAAAS2%2" 
                         Mailbox="user@example.com" />
        </ConvertIdResponseMessage>
      </ResponseMessages>
    </ConvertIdResponse>
  </soap:Body>
</soap:Envelope>

Пример ответа на ошибку операции ConvertId

В следующем примере показан ответ на запрос, содержащий неправильный тип формата идентификатора.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Header>
    <ServerVersionInfo MajorVersion="8" MinorVersion="1" 
                       MajorBuildNumber="206" MinorBuildNumber="0"
                       Version="Exchange2010" 
                       xmlns="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <ResponseMessages>
        <ConvertIdResponseMessage ResponseClass="Error">
          <MessageText>Id is malformed.</MessageText>
          <ResponseCode>ErrorInvalidIdMalformed</ResponseCode>
          <DescriptiveLinkKey>0</DescriptiveLinkKey>
        </ConvertIdResponseMessage>
      </ResponseMessages>
    </ConvertIdResponse>
  </soap:Body>
</soap:Envelope>

Различия версий

Формат идентификатора EWS изменялся в исходной версии Exchange 2007 и Exchange 2007 с пакетом обновления 1 (SP1). Exchange Online в составе Office 365, Exchange Online и локальных версий Exchange, начиная с Exchange 2010, используют тот же формат идентификатора, что и Exchange 2007 с пакетом обновления 1 (SP1).

Операция ConvertId преобразует идентификаторы общедоступных папок из идентификатора EWS в идентификатор хранилища в Exchange 2007 и Exchange 2010.

См. также