Compartilhar via


Item.WebClientReadFormQueryString Propriedade

Definição

Obtém a cadeia de caracteres de consulta que deve ser anexada à URL do cliente Web do Exchange para abrir esse item usando o formulário de leitura apropriado em um navegador da Web.

public:
 property System::String ^ WebClientReadFormQueryString { System::String ^ get(); };
public string WebClientReadFormQueryString { get; }
Public ReadOnly Property WebClientReadFormQueryString As String

Valor da propriedade

Um valor de cadeia de caracteres.

Exemplos

/// <summary>
/// Demonstrates how to open an item in Outlook Web App.
/// </summary>
/// <param name="service">An ExchangeService object that has already had credentials set and contains a valid service URL.</param>
static void OpenOWAFromWebClientReadFormQueryString(ExchangeService service)
{
  // Create a view that will return the identifier for the first item in a folder.
  ItemView itemView = new ItemView(1);
  itemView.PropertySet = new PropertySet(BasePropertySet.IdOnly);

  // Make a call to EWS to get one item from the mailbox folder.
  FindItemsResults<Item> results = service.FindItems(WellKnownFolderName.Drafts, itemView);

  // Get the item identifier of the item to open in Outlook Web App.
  ItemId itemId = results.Items[0].Id;

  ExchangeServerInfo serverInfo = service.ServerInfo;
  var owaReadFormQueryString = string.Empty;
  var ewsIdentifer = itemId.UniqueId;

  try
  {
    // Make a call to EWS to bind to the item returned by the FindItems method.
    EmailMessage msg = EmailMessage.Bind(service, itemId);
    msg.Load(new PropertySet(BasePropertySet.IdOnly, EmailMessageSchema.WebClientReadFormQueryString));

    // Versions of Exchange starting with major version 15 and ending with Exchange Server 2013 build 15.0.775.09
    // returned a different query string fragment. This optional check is not required for applications that
    // target Exchange Online.
    if ((serverInfo.MajorVersion == 15) && (serverInfo.MajorBuildNumber < 775) &&(serverInfo.MinorBuildNumber < 09))
    {
      // If your client is connected to an Exchange 2013 server that has not been updated to CU3,
      // this query string will be returned.
      owaReadFormQueryString = string.Format("#viewmodel=_y.$Ep&ItemID={0}",
        System.Web.HttpUtility.UrlEncode(ewsIdentifer, Encoding.UTF8));
    }
    else
    {
      // If your client is connected to an Exchanger 2010, Exchange 2013 CU3, or Exchange Online server,
      // the WebClientReadFormQueryString is used.
      owaReadFormQueryString = msg.WebClientReadFormQueryString;
    }

    // Create the URL that Outlook Web App uses to open the email message.
    Uri url = service.Url;
    string owaReadAccessUrl = string.Format("{0}://{1}/owa/{2}",
      url.Scheme, url.Host, owaReadFormQueryString);

    if (!string.IsNullOrEmpty(owaReadAccessUrl))
    {
      System.Diagnostics.Process.Start("IEXPLORE.EXE", owaReadAccessUrl);
    }
  }
  catch (System.ComponentModel.Win32Exception ex)
  {
    Console.WriteLine(ex.Message);
    Console.WriteLine("ERRROR: Internet Explorer cannot be found.");
  }
}

Comentários

O identificador de item de uma URL Outlook Web App é o identificador EWS do item. Você pode codificar URL do identificador de item EWS e anexá-lo à cadeia de caracteres de consulta para obter a URL Outlook Web App para um item.

Diferenças de versão

As versões do Exchange começando com a versão principal 15 e terminando com 15.00.775.009 não retornam um fragmento de cadeia de caracteres de consulta correta na WebClientReadFormQueryString propriedade.

Em versões do Exchange anteriores à versão principal 15, o identificador de item da URL Outlook Web App é um identificador Outlook Web App. Se você estiver mirando uma versão do Exchange anterior à versão principal 15, precisará usar o Microsoft.Exchange.WebServices.ExchangeService.ConvertID método para converter o identificador.

Aplica-se a