Verwenden der AutoErmittlung für die Suche nach Verbindungspunkten

Erfahren Sie, wie Sie den AutoErmittlungsdienst verwenden, um Ihre Clientanwendung an den richtigen Exchange-Server weiterzuleiten.

Der Exchange AutoErmittlungsdienst stellt Ihrer Clientanwendung Konfigurationseinstellungen für E-Mail-Konten bereit, die auf Exchange Online gehostet werden, Exchange Online als Teil Office 365 oder eines Exchange-Servers, auf dem eine Exchange-Version ab Exchange 2013 ausgeführt wird. Der AutoErmittlungsdienst ist ein Webdienst, der Konfigurationseinstellungen bereitstellt. Der AutoErmittlungsdienst ist ein Webdienst, der Exchange-Serverkonfigurationsinformationen für Ihre Clientanwendung bereitstellt. Clientanwendungen verwenden die AutoErmittlung, um den Endpunkt des AutoErmittlungsdiensts für ein bestimmtes Postfach zu bestimmen. In diesem Artikel wird erläutert, wie Sie den Antworten eines Exchange-Servers folgen, um den richtigen Endpunkt zu finden.

Informationen zum Abrufen von Konfigurationseinstellungen für E-Mail-Adressen finden Sie unter Abrufen von Benutzereinstellungen aus Exchange mithilfe der AutoErmittlung und Abrufen von Domäneneinstellungen von einem Exchange-Server.

Hinweis

Der Prozess zum Suchen des richtigen Endpunkts ist Teil der Anforderung für Benutzer- oder Domäneneinstellungen. Der AutoErmittlungsdienst verwendet eine Reihe von Umleitungsantworten, um die Clientanwendung an den richtigen Endpunkt für eine E-Mail-Adresse zu senden.

Sie können eine der folgenden Exchange-Entwicklungstechnologien verwenden, um auf den AutoErmittlungsdienst zuzugreifen:

  • Die verwaltete API der Exchange-Webdienste (Exchange Web Services, EWS)

  • EWS

Bei Verwendung von EWS können Sie die folgenden Methoden zum Abrufen von Benutzereinstellungen verwenden:

  • Den SOAP-basierten AutoErmittlungsdienst

  • Den XML-AutoErmittlungsdienst (POX)

  • Einen automatisch vom SOAP- oder XML-AutoErmittlungdienst generierten Proxy

Weitere Informationen zu diesen Methoden finden Sie unter AutoErmittlung für Exchange.

Weitere Informationen zu diesen Exchange-Entwicklungstechnologien finden Sie unter Erkunden der verwalteten EWS-API, EWS und Webdienste in Exchange.

Die EWS Managed API stellt eine objektbasierte Schnittstelle für das Abrufen von Benutzereinstellungen bereit. Wenn die Clientanwendung verwalteten Code verwendet, wird empfohlen, die verwaltete EWS-API zu verwenden. Die verwaltete EWS-API-Schnittstelle ist besser für ein einfaches Objektmodell optimiert als der typische automatisch generierte Webdienstproxy.

Bei Verwendung von EWS empfehlen wir die Verwendung des SOAP-AutoErmittlungsdiensts, da dieser eine umfassendere Sammlung von Funktionen als der POX-AutoErmittlungsdienst unterstützt.

Voraussetzungen für die Suche nach einem Endpunkt

Bevor Sie eine Clientanwendung erstellen können, die den AutoErmittlungsdienst verwendet, benötigen Sie Zugriff auf Folgendes:

  • Exchange Online oder ein Server, auf dem eine Version von Exchange ab Exchange 2007 SP1 ausgeführt wird. Wenn Sie den SOAP-basierten AutoErmittlungsdienst verwenden: Exchange Online oder eine Version von Exchange ab Exchange 2010

  • Einen Exchange-Server, der Verbindungen von Ihrer Clientanwendung akzeptiert. Informationen zum Konfigurieren des Exchange-Servers finden Sie unter Steuern des Clientanwendungszugriffs auf EWS in Exchange.

  • Ein Konto, das berechtigt ist, EWS zu verwenden. Informationen zum Konfigurieren eines Kontos finden Sie unter Steuern des Clientanwendungszugriffs auf EWS in Exchange.

Hinweis

Wenn Sie die verwaltete EWS-API verwenden, müssen Sie in einigen Fällen einen Zertifikatüberprüfungsrückruf bereitstellen. Auch bei einigen generierten Proxybibliotheken, wie den von Visual Studio erstellten, benötigen Sie möglicherweise einen Zertifikatüberprüfungsrückruf. Weitere Informationen finden Sie unter Überprüfen eines Serverzertifikats für die verwaltete EWS-API.

Kernkonzepte für die Suche nach einem Endpunkt

Bevor Sie die AutoErmittlung verwenden, um einen Endpunkt zu finden, sollten Sie mit den in der folgenden Tabelle aufgeführten Konzepten vertraut sein.

Konzept Beschreibung
AutoErmittlung für Exchange
Bietet eine Übersicht über die Funktionsweise des AutoErmittlungsdiensts.

Wenn Sie die verwaltete EWS-API benutzen, verwenden Sie die Klasse Microsoft.Exchange.WebServices.Data.ExchangeService im Namespace Microsoft.Exchange.WebServices.Data, um Ihre Verbindungen mit EWS zu verwalten. Um die Codebeispiele der verwalteten EWS-API in diesem Artikel verwenden zu können, müssen Sie in Ihrem Code auf die folgenden Namespaces verweisen:

  • System.Net

  • Microsoft.Exchange.WebServices.Data.ExchangeService

Suchen des richtigen Endpunkts mithilfe der verwalteten EWS-API

Wenn Sie die verwaltete EWS-API verwenden, werden Aufrufe des AutoErmittlungsdiensts von der ExchangeService-Klasse verarbeitet. Um den richtigen Endpunkt für ein E-Mail-Konto zu ermitteln, rufen Sie die AutodiscoverUrl-Methode für ein [ExchangeService] -Objekt auf. Im folgenden Codebeispiel wird gezeigt, wie sie den EWS-Webdienstendpunkt für eine E-Mail-Adresse auf der Datei Exchange.asmx auf dem richtigen Clientzugriffsserver mithilfe der verwalteten EWS-API festlegen.

NetworkCredential credentials = new NetworkCredential(securelyStoredEmail, securelyStoredPassword);
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = credentials;
service.AutodiscoverUrl("User1@contoso.com");

Suchen des richtigen Endpunkts mithilfe von EWS

Der SOAP-AutoErmittlungsdienst kann eine Reihe von Anforderungen und Antworten verwenden, um Ihre Anwendung an den richtigen Endpunkt für EWS weiterzuleiten. Informationen zum Prozess zum Ermitteln des richtigen Endpunkts für ein E-Mail-Konto finden Sie unter AutoErmittlung für Exchange. Die folgenden XML-Beispiele zeigen die Reihe von Anforderungen und Antworten, die Sie erwarten können, wenn Sie eine SOAP-AutoErmittlungsanforderung ausführen, um den richtigen Endpunkt zu finden.

SOAP-AutoErmittlungsendpunktanforderung

Das folgende Beispiel zeigt eine XML-Anforderung, die an den AutoErmittlungsdienst gesendet wird, um den richtigen Endpunkt zu finden.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:wsa="http://www.w3.org/2005/08/addressing" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <a:RequestedServerVersion>Exchange2013</a:RequestedServerVersion>
    <wsa:Action>https://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
    <wsa:To>https://mail.microsoft.com/autodiscover/autodiscover.svc</wsa:To>
  </soap:Header>
  <soap:Body>
    <a:GetUserSettingsRequestMessage xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <a:Request>
        <a:Users>
          <a:User>
            <a:Mailbox>User1@Contoso.com</a:Mailbox>
          </a:User>
        </a:Users>
        <a:RequestedSettings>
          <a:Setting>InternalEwsUrl</a:Setting>
          <a:Setting>ExternalEwsUrl</a:Setting>
        </a:RequestedSettings>
      </a:Request>
    </a:GetUserSettingsRequestMessage>
  </soap:Body>
</soap:Envelope>

Soap-AutoErmittlungs-Umleitungsantwort

Der AutoErmittlungsdienst antwortet möglicherweise mit einer von zwei Umleitungsantworten: einer HTTP 302-Umleitung oder einer SOAP-Umleitungsantwort. Wenn die Antwort vom Exchange-Server eine HTTP 302-Umleitung ist, sollte die Clientanwendung überprüfen, ob die Umleitungsadresse akzeptabel ist, und dann der Umleitungsantwort folgen.

Wichtig

Kriterien zum Überprüfen einer Umleitungsantwort finden Sie unter AutoErmittlung für Exchange.

Wenn der AutoErmittlungsdienst eine Umleitungsantwort zurückgibt, die durch das ErrorCode-Element des UserResponse-Elements angegeben wird, sollte Ihre Clientanwendung das RedirectTarget-Element verwenden, um eine neue Einstellungsanforderung zu erstellen, die an den in der Umleitungsantwort angegebenen Server gesendet wird. Das folgende Beispiel zeigt eine Umleitungsantwort vom Server.

<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/" xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">https://schemas.microsoft.com/exchange/2010/
        Autodiscover/Autodiscover/GetUserSettingsResponse</a:Action>
    <h:ServerVersionInfo xmlns:h="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <h:MajorVersion>15</h:MajorVersion>
      <h:MinorVersion>0</h:MinorVersion>
      <h:MajorBuildNumber>682</h:MajorBuildNumber>
      <h:MinorBuildNumber>1</h:MinorBuildNumber>
      <h:Version>Exchange2013</h:Version>
    </h:ServerVersionInfo>
  </s:Header>
  <s:Body>
    <GetUserSettingsResponseMessage xmlns="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <ErrorCode>NoError</ErrorCode>
        <ErrorMessage />
        <UserResponses>
          <UserResponse>
            <ErrorCode>RedirectAddress</ErrorCode>
            <ErrorMessage>Redirection address.</ErrorMessage>
            <RedirectTarget>User1@mail.Contoso.com</RedirectTarget>
            <UserSettingErrors />
            <UserSettings />
          </UserResponse>
        </UserResponses>
      </Response>
    </GetUserSettingsResponseMessage>
  </s:Body>
</s:Envelope>

Nach einer Umleitung verwendet der Client die Umleitungs-URL, um eine weitere Anforderung vorzubereiten. Der folgende Code zeigt ein Beispiel für die Anforderung, die Sie aus der Umleitungsantwort erstellen.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:wsa="http://www.w3.org/2005/08/addressing" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:soap="https://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <a:RequestedServerVersion>Exchange2013</a:RequestedServerVersion>
    <wsa:Action>https://schemas.microsoft.com/exchange/2010/
        Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
    <wsa:To>https://autodiscover.exchange.microsoft.com/autodiscover/autodiscover.svc</wsa:To>
  </soap:Header>
  <soap:Body>
    <a:GetUserSettingsRequestMessage xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <a:Request>
        <a:Users>
          <a:User>
            <a:Mailbox>User1@mail.Contoso.com</a:Mailbox>
          </a:User>
        </a:Users>
        <a:RequestedSettings>
          <a:Setting>InternalEwsUrl</a:Setting>
          <a:Setting>ExternalEwsUrl</a:Setting>
        </a:RequestedSettings>
      </a:Request>
    </a:GetUserSettingsRequestMessage>
  </soap:Body>
</soap:Envelope>

Wenn die Clientanwendung an den richtigen Endpunkt für den AutoErmittlungsdienst weitergeleitet wurde, sendet der Server eine Antwort mit dem ErrorCode-Element des UserResponse-Elements , das auf NoError festgelegt ist und die angeforderten Benutzereinstellungen enthält. Nur die angeforderten Benutzereinstellungen InternalEwsUrl und ExternalEwsUrl werden zurückgegeben. Das folgende Beispiel zeigt die Antwort vom Server.

<s:Envelope xmlns:s="https://schemas.xmlsoap.org/soap/envelope/" 
        xmlns:a="http://www.w3.org/2005/08/addressing">
  <s:Header>
    <a:Action s:mustUnderstand="1">https://schemas.microsoft.com/exchange/2010/
        Autodiscover/Autodiscover/GetUserSettingsResponse</a:Action>
    <h:ServerVersionInfo xmlns:h="https://schemas.microsoft.com/exchange/2010/Autodiscover" 
        xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <h:MajorVersion>15</h:MajorVersion>
      <h:MinorVersion>0</h:MinorVersion>
      <h:MajorBuildNumber>160</h:MajorBuildNumber>
      <h:MinorBuildNumber>4</h:MinorBuildNumber>
      <h:Version>Exchange2013</h:Version>
    </h:ServerVersionInfo>
  </s:Header>
  <s:Body>
    <GetUserSettingsResponseMessage xmlns="https://schemas.microsoft.com/exchange/2010/Autodiscover">
      <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
        <ErrorCode>NoError</ErrorCode>
        <ErrorMessage />
        <UserResponses>
          <UserResponse>
            <ErrorCode>NoError</ErrorCode>
            <ErrorMessage>No error.</ErrorMessage>
            <RedirectTarget i:nil="true" />
            <UserSettingErrors />
            <UserSettings>
              <UserSetting i:type="StringSetting">
                <Name>InternalEwsUrl</Name>
                <Value>https://server.Contoso.com/ews/exchange.asmx</Value>
              </UserSetting>
              <UserSetting i:type="StringSetting">
                <Name>ExternalEwsUrl</Name>
                <Value>https://server.Contoso.com/ews/exchange.asmx</Value>
              </UserSetting>
            </UserSettings>
          </UserResponse>
        </UserResponses>
      </Response>
    </GetUserSettingsResponseMessage>
  </s:Body>
</s:Envelope>

Nächste Schritte

Beim Suchen des Endpunkts durch Ausführen des AutoErmittlungsprozesses werden die angeforderten Domänen- oder Benutzereinstellungen zurückgegeben. Informationen zum Stellen einer Anforderung für bestimmte Einstellungen finden Sie in den folgenden Artikeln:

Siehe auch