0

我们正在使用 Exchange 2010 SP1 SOAP Web 服务。我找不到获取当前(经过身份验证的)用户信息的 API。

4

1 回答 1

0
  1. 如果要获取当前用户自己的邮箱:

您可以将 ConvertId 与通用地址一起使用,然后 Exchange 将返回该邮箱的 PrimarySMTP,例如:

Folder Inbox = Folder.Bind(service, WellKnownFolderName.Inbox);
        AlternateId aiAlternateid = new AlternateId(IdFormat.EwsId, Inbox.Id.UniqueId, "mailbox@domain.com");
        AlternateIdBase aiResponse = service.ConvertId(aiAlternateid, IdFormat.EwsId);
        Console.WriteLine(((AlternateId)aiResponse).Mailbox);

如果您执行基于 POX 的发现,AutoDiscover 还将返回邮箱的 PrimarySMTP 地址。

要检查其他地址,您还可以使用 ResolveName:

在 Exchange 2013 中使用 EWS 解决不明确的名称

  1. 如果要在 EWS 中获取登录用户的显示名称:

如果您要使用 ResolveName 并且需要 displayName,那么您应该使用重载来指定操作应该返回 AD 联系信息。然后您可以只使用 DisplayName 属性。

    NameResolutionCollection ncCol = service.ResolveName("user@domain.com",ResolveNameSearchLocation.DirectoryOnly,true);

    Console.WriteLine(ncCol[0].Contact.DisplayName);

有关更多信息,您可以参考以下链接:

如何在 EWS 中获取登录用户的显示名称?

如何使用 Exchange Web Services 获取当前用户自己的电子邮件地址或输入的支票?

于 2018-10-10T02:10:45.700 回答