我们正在使用 Exchange 2010 SP1 SOAP Web 服务。我找不到获取当前(经过身份验证的)用户信息的 API。
1 回答
0
- 如果要获取当前用户自己的邮箱:
您可以将 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 解决不明确的名称
- 如果要在 EWS 中获取登录用户的显示名称:
如果您要使用 ResolveName 并且需要 displayName,那么您应该使用重载来指定操作应该返回 AD 联系信息。然后您可以只使用 DisplayName 属性。
NameResolutionCollection ncCol = service.ResolveName("user@domain.com",ResolveNameSearchLocation.DirectoryOnly,true);
Console.WriteLine(ncCol[0].Contact.DisplayName);
有关更多信息,您可以参考以下链接:
于 2018-10-10T02:10:45.700 回答