ConvertId-Vorgang

Hier finden Sie Informationen zum EWS-Vorgang ConvertId .

Der EwS-Vorgang (ConvertId Exchange Web Services) konvertiert Element- und Ordnerbezeichner zwischen Formaten, die von Exchange Online akzeptiert werden, Exchange Online als Teil von Office 365 und lokalen Versionen von Exchange ab Exchange Server 2013.

Verwenden des ConvertId-Vorgangs

Sie können die folgenden Bezeichner mithilfe des ConvertId-Vorgangs konvertieren:

  • Das Bezeichnerformat für EWS in der ersten Version von Exchange 2007. Dies wird durch den EwsLegacyId Enumerationswert in der IdFormat-Enumeration dargestellt.

  • Das Bezeichnerformat für EWS in Exchange 2007 SP1 oder Exchange 2010. Dies wird durch den EwsId Enumerationswert in IdFormat dargestellt.

  • Der MAPI-Bezeichner wie in der eigenschaft PR_ENTRYID . Dies wird durch den EntryId Enumerationswert in der IdFormat-Enumeration dargestellt.

  • Der Ereignisbezeichner des Verfügbarkeitskalenders. Dies ist eine hexadezimal codierte Darstellung der PR_ENTRYID-Eigenschaft . Dies wird durch den HexEntryId Enumerationswert in IdFormat dargestellt.

  • Der Exchange-Speicherbezeichner. Dies wird durch den StoreId Enumerationswert in IdFormat dargestellt. Der ConvertId-Vorgang konvertiert keine Bezeichner für öffentliche Ordner vom EWS-Bezeichner in den Speicherbezeichner.

  • Der Outlook Web App-Bezeichner. Dies wird durch den OwaId Enumerationswert in IdFormat dargestellt.

    Die Übergabe von URLs, die von diesem Bezeichner an Outlook Web App erstellt werden, wird nicht unterstützt. Der Outlook Web App-Bezeichner gilt für Exchange 2007 und Exchange 2010. Outlook Web App für Exchange Online und Versionen von Exchange ab Exchange Server 2013 verwendet EWS-Bezeichner.

Der ConvertId-Vorgang funktioniert nicht wie erwartet, wenn Bezeichner öffentlicher Ordner vom EWS-Bezeichner in den Speicherbezeichner in Exchange Online und Exchange 2013 konvertiert werden. Zur Problemumgehung können Sie die zurückgegebene Kennung manuell anpassen. So aktualisieren Sie den Bezeichner manuell:

  1. Bestimmen Sie in Ihrem Anwendungscode, ob sich das Zielelement/der Zielordner in einem öffentlichen Ordner befindet.

  2. Decodieren Sie die Base64-codierte Bezeichnerzeichenfolge.

  3. Überprüfen Sie, ob das Typbyte (21. Byte) den Wert 7 aufweist. Der Wert 7 gibt an, dass der Bezeichner das falsche Format aufweist.

  4. Überspringen Sie die ersten vier Bytes. Sie müssen auf 0 (null) festgelegt werden.

  5. Aktualisieren Sie die nächsten 16 Bytes mit der folgenden GUID: 1A447390AA6611CD9BC800AA002FC45A

  6. Aktualisieren Sie das nächste Byte (Typbyte) mit dem Wert 9.

  7. Ändern Sie den Bezeichner in eine Base64-codierte Zeichenfolge.

Hinweis

Der ConvertId-Vorgang überprüft, ob eine angegebene SMTP-Adresse ein gültiges Format hat. Der Vorgang bestimmt nicht, ob eine SMTP-Adresse ein gültiges Postfach darstellt.

Der ConvertId-Vorgang kann die SOAP-Header verwenden, die in der folgenden Tabelle aufgeführt sind.

Tabelle 1. ConvertId-Vorgang SOAP-Header

Header Element Beschreibung
Identitätswechsel
ExchangeImpersonation
Identifiziert den Benutzer, für den die Clientanwendung einen Identitätswechsel durchführt. Dies gilt für eine Anforderung.
RequestVersion
RequestServerVersion
Gibt die Schemaversion für die Vorgangsanforderung an. Dies gilt für eine Anforderung.
ServerVersion
ServerVersionInfo
Gibt die Version des Servers an, der auf die Anforderung geantwortet hat. Dies gilt für eine Antwort.

Beispiel für eine ConvertId-Vorgangsanforderung

Das folgende Beispiel einer ConvertId-Anforderung zeigt, wie sie von einem EWS-Bezeichner in einen Outlook Web App-Bezeichner konvertieren.

Das RequestServerVersion-Element im SOAP-Header muss auf Exchange2007_SP1 oder höher festgelegt werden, damit dieser Vorgang funktioniert.

Hinweis

Der Elementbezeichner wurde gekürzt, um die Lesbarkeit zu erhalten.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
               xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010"/>
  </soap:Header>
  <soap:Body>
    <ConvertId xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
               xmlns:t="http://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>

Beispiel für eine ConvertId-Vorgangsantwort

Das folgende Beispiel zeigt eine erfolgreiche Antwort auf eine ConvertId-Anforderung . Dieses Antwortbeispiel enthält einen Outlook Web App Bezeichner.

Hinweis

Der Outlook Web App-Bezeichner wurde gekürzt, um die Lesbarkeit zu erhalten.

<?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="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="http://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>

Beispiel für fehlerantwort beim ConvertId-Vorgang

Das folgende Beispiel zeigt die Antwort auf eine Anforderung, die den falschen Typ des Bezeichnerformats enthält.

<?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="http://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <ConvertIdResponse xmlns="http://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>

Versionsunterschiede

Das EWS-Bezeichnerformat wurde zwischen der anfänglichen Version von Exchange 2007 und Exchange 2007 Service Pack 1 (SP1) geändert. Exchange Online als Teil von Office 365-, Exchange Online- und lokalen Versionen von Exchange ab Exchange 2010 das gleiche Bezeichnerformat wie Exchange 2007 SP1 verwenden.

Der ConvertId-Vorgang konvertiert Bezeichner für öffentliche Ordner vom EWS-Bezeichner in den Speicherbezeichner in Exchange 2007 und Exchange 2010.

Siehe auch