Obter as configurações de domínio de um servidor do Exchange
Saiba como obter configurações de domínio de um servidor exchange usando o serviço Autodiscover.
Você pode recuperar informações de configuração de um domínio de email usando o serviço de Autodiscover. O serviço Autodiscover fornece ao seu aplicativo um processo para se conectar ao ponto de extremidade de serviço correto para um domínio específico.
Você pode usar uma das seguintes tecnologias de desenvolvimento para acessar o serviço de Autodiscover:
A API Gerenciada do Exchange Web Services (EWS)
EWS
Se você estiver usando o EWS, poderá usar os seguintes métodos para recuperar as configurações do usuário:
O serviço de autodiscóver baseado em SOAP
O serviço de descoberta automática XML (POX)
Um proxy gerado automaticamente do serviço SOAP ou XML Autodiscover
Para obter mais informações sobre esses métodos, consulte Autodiscover for Exchange.
A API Gerenciada do EWS fornece uma interface baseada em objeto para recuperar as configurações do usuário. Se o aplicativo cliente usar código gerenciado, recomendamos que você use a API Gerenciada do EWS. A interface da API Gerenciada do EWS é melhor otimizada para um modelo de objeto simples do que o proxy de serviço Web autogerenciado típico.
Se você estiver usando o EWS, sugerimos que você use o serviço SOAP Autodiscover, pois ele dá suporte a um conjunto mais rico de recursos do que o serviço pox autodiscover.
O serviço Autodiscover retorna apenas as configurações de configuração solicitadas. A tabela a seguir lista as configurações de configuração de domínio que o serviço autodiscover pode retornar.
Tabela 1: Configurações de domínio
Definição de configuração | Descrição |
---|---|
ExternalEwsUrl |
A URL externa para EWS. |
ExternalEwsVersion |
A versão do servidor exchange que hospeda a URL do EWS. |
Pré-requisitos para obter configurações de domínio
Antes de criar um aplicativo que se conecte ao serviço autodiscover para obter configurações de domínio, verifique se você tem acesso ao seguinte:
Exchange Online, Exchange Online como parte de Office 365 ou um servidor que executa uma versão do Exchange a partir do Exchange 2007. Se você estiver usando o serviço de autodiscover baseado em SOAP do EWS, um servidor executando uma versão do Exchange a partir do Exchange 2010.
Um servidor exchange configurado para aceitar conexões do aplicativo cliente. Para obter informações sobre como configurar o servidor do Exchange, consulte Controlar o acesso do aplicativo cliente ao EWS no Exchange.
Uma conta autorizada a usar o EWS. Para obter informações sobre como configurar uma conta, consulte Controlar o acesso do aplicativo cliente ao EWS no Exchange.
Observação
Se você estiver usando a API Gerenciada do EWS, deverá fornecer um retorno de chamada de validação de certificado em algumas circunstâncias. Você também pode precisar de um retorno de chamada de validação de certificado com algumas bibliotecas proxy geradas, como as criadas pelo Visual Studio. Para obter mais informações, consulte Validar um certificado de servidor para a API Gerenciada do EWS.
Conceitos principais para obter configurações de domínio
Antes de usar o Autodiscover para obter configurações de domínio, você deve estar familiarizado com os conceitos listados na tabela a seguir.
Conceito | Descrição |
---|---|
Descoberta Automática do Exchange |
Fornece uma visão geral de como o serviço de Descoberta Automática funciona. |
Usar a Descoberta Automática para localizar os pontos de conexão |
Descreve o processo usado pelo serviço Autodiscover para redirecionar seu aplicativo cliente para o ponto de extremidade de serviço correto. |
Se você estiver usando a API Gerenciada do EWS, use a classe Microsoft.Exchange.WebServices.Data.ExchangeService no namespace Microsoft.Exchange.WebServices.Data para gerenciar sua conexão com o EWS. Os exemplos de código nesta seção supõem que você referencie os seguintes namespaces em seu código:
System.Net
Microsoft.Exchange.WebServices.Data.ExchangeService
Obter configurações de domínio usando a API Gerenciada do EWS
Se você estiver usando a API Gerenciada do EWS, poderá usar o método Microsoft.Exchange.WebServices.Data.AutodiscoverSettings.GetUserSettings do objeto Microsoft.Exchange.WebServices.Data.AutodiscoverService para gerar a solicitação que recupera informações de configuração para um domínio, conforme mostrado no exemplo a seguir. Neste exemplo, apenas algumas das possíveis configurações de domínio são solicitadas e apenas as configurações solicitadas são retornadas do servidor.
AutodiscoverService autodiscoverService = new AutodiscoverService("domain.contoso.com");
autodiscoverService.Credentials = new NetworkCredential("User1", "password", "domain.contoso.com");
// Submit a request and get the settings. The response contains only the
// settings that are requested, if they exist.
GetDomainSettingsResponse domainresponse = autodiscoverService.GetDomainSettings(
"domain",
ExchangeVersion.Exchang2013,
DomainSettingName.ExternalEwsUrl,
DomainSettingName.ExternalEwsVersion);
Você pode analisar a coleção retornada para acessar cada par de chave/valor. O exemplo a seguir mostra como analisar cada elemento retornado e exibir o nome e o valor de cada par de chave/valor.
// Display each retrieved value. The settings are part of a key/value pair.
foreach (KeyValuePair<DomainSettingName, Object> domainsetting in domainresponse.Settings)
{
Console.WriteLine(domainsetting.Key.ToString() + ": " + domainsetting.Value.ToString());
}
Como alternativa, você pode obter o valor de uma configuração específica. No exemplo a seguir, a configuração ExternalEwsUrl deve ser exibida.
// Display a specific setting, such as ExternalEwsUrl.
Console.WriteLine(domainresponse.Settings[DomainSettingName.ExternalEwsUrl]);
Obter configurações de usuário usando o EWS SOAP Autodiscover
O exemplo a seguir mostra uma solicitação SOAP XML para obter as duas configurações de domínio do serviço autodiscover.
<?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/GetDomainSettings</wsa:Action>
<wsa:To>https://autodiscover.exchange.microsoft.com/autodiscover/autodiscover.svc</wsa:To>
</soap:Header>
<soap:Body>
<a:GetDomainSettingsRequestMessage xmlns:a="https://schemas.microsoft.com/exchange/2010/Autodiscover">
<a:Request>
<a:Domains>
<a:Domain>domain</a:Domain>
</a:Domains>
<a:RequestedSettings>
<a:Setting>ExternalEwsUrl</a:Setting>
<a:Setting>ExternalEwsVersion</a:Setting>
</a:RequestedSettings>
<a:RequestedVersion>Exchange2013</a:RequestedVersion>
</a:Request>
</a:GetDomainSettingsRequestMessage>
</soap:Body>
</soap:Envelope>
O exemplo a seguir mostra a resposta XML retornada pelo servidor depois que ele analisa a solicitação do cliente.
<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/GetDomainSettingsResponse</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>
<GetDomainSettingsResponseMessage xmlns="https://schemas.microsoft.com/exchange/2010/Autodiscover">
<Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<ErrorCode>NoError</ErrorCode>
<ErrorMessage />
<DomainResponses>
<DomainResponse>
<ErrorCode>NoError</ErrorCode>
<ErrorMessage>No error.</ErrorMessage>
<DomainSettingErrors />
<DomainSettings>
<DomainSetting i:type="DomainStringSetting">
<Name>ExternalEwsUrl</Name>
<Value>https://failover.exchange.microsoft.com/ews/exchange.asmx</Value>
</DomainSetting>
<DomainSetting i:type="DomainStringSetting">
<Name>ExternalEwsVersion</Name>
<Value>15.00.0085.000</Value>
</DomainSetting>
</DomainSettings>
<RedirectTarget i:nil="true" />
</DomainResponse>
</DomainResponses>
</Response>
</GetDomainSettingsResponseMessage>
</s:Body>
</s:Envelope>
Próximas etapas
As configurações de domínio fornecem as informações básicas que seu cliente precisa para se conectar ao EWS. Você pode usar essas informações para se conectar ao EWS ou recuperar configurações adicionais para uma conta de email do servidor. Para obter mais informações, consulte o seguinte artigo: