交换服务:无需凭据即可连接,如何检索用户信息

本文关键字:何检索 检索 信息 用户 可连接 服务 交换 | 更新日期: 2023-09-27 18:35:16

我正在分析一个用户Exchange邮箱,该邮箱调用ExchangeService。此工具需要定期在客户端环境中运行,并通过省略我以登录 Windows 用户身份连接到 Exchange 服务的服务的凭据。我可以成功地循环浏览文件夹和项目。

现在我想检索有关正在使用的邮箱的信息。用户名和(主要)电子邮件就足够了。但是我找不到有关如何检索此信息的任何信息。每个示例都为用户提供了可信度,或者从电子邮件中自动发现 Exchange 服务。我不希望用户配置任何东西:-)。

有什么建议吗?

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.Url = new Uri("https://FQDN/EWS/Exchange.asmx");
???
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.SentItems, new ItemView(100)); // this works

我试过使用服务。ResolveName,但即使使用Environment.UserName,也可以给出多个答案。

交换服务:无需凭据即可连接,如何检索用户信息

最简单的方法是使用 ConvertId 操作并在邮箱元素中使用不可解析的地址(blah@blah.com 始终对我有用)。Exchange 应将其转换为响应中的实际邮箱。例如

        Folder chk = Folder.Bind(service, WellKnownFolderName.Inbox);
        AlternateId aiItem = new AlternateId();
        aiItem.Mailbox = "Blah@Blah.com";
        aiItem.UniqueId = chk.Id.UniqueId;
        aiItem.Format = IdFormat.EwsId;
        String CasServer = service.Url.Host.ToString();
        AlternateIdBase caid = service.ConvertId(aiItem, IdFormat.HexEntryId);
        Console.WriteLine(((AlternateId)caid).Mailbox);

干杯幽谷