Item.WebClientReadFormQueryString 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取应追加到 Exchange Web 客户端 URL 的查询字符串,以便通过在 Web 浏览器中使用相应的阅读表单打开此项。
public:
property System::String ^ WebClientReadFormQueryString { System::String ^ get(); };
public string WebClientReadFormQueryString { get; }
Public ReadOnly Property WebClientReadFormQueryString As String
属性值
字符串值。
示例
/// <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.");
}
}
注解
Outlook Web App URL 的项目标识符是该项的 EWS 标识符。 可以对 EWS 项标识符进行 URL 编码,并将其追加到查询字符串,以获取项的Outlook Web App URL。
版本差异
从主版本 15 开始到以 15.00.775.009 结尾的 Exchange 版本不会在 属性中 WebClientReadFormQueryString 返回正确的查询字符串片段。
在主要版本 15 之前的 Exchange 版本中,Outlook Web App URL 的项目标识符是Outlook Web App标识符。 如果面向早于主要版本 15 的 Exchange 版本,则必须使用 Microsoft.Exchange.WebServices.ExchangeService.ConvertID 方法来转换标识符。