首页 > 解决方案 > 使用他们的电子邮件地址 EWS 查找用户邮箱 GUID

问题描述

我正在开发 Outlook 插件并进行一些加密和解密。我在 POST 请求期间在服务器上创建了一些散列字符串。该字符串稍后将传递给 GET 请求,并且在服务器上我需要比较该散列字符串以查看用户是否与执行 POST 请求的用户相同。

当我发出 GET 请求时,我还使用Office.context.mailbox.userProfile.emailAddress.

问题如何使用他们的电子邮件地址找到用户的mailboxGUID(或包含mailboxGUID 等的帐户信息)?

标签: c#exchangewebservicesoutlook-addin

解决方案


您想要 AD/目录 GUID 还是 ExchangeGUID ?您可以使用 ResolveName 获取 ADGuid 并指定属性集(从 2010 年开始有效),例如

        PropertySet exProp = new PropertySet(BasePropertySet.FirstClassProperties);
        NameResolutionCollection ncCol = service.ResolveName("user@domain.com", ResolveNameSearchLocation.DirectoryOnly, true, exProp);
        if (ncCol.Count == 1)
        {
            Console.WriteLine(ncCol[0].Contact.DirectoryId);
        }

MailboxGUID 构成了 FolderId 格式的一部分,因此如果您真的需要它,可以将其解析为https://msdn.microsoft.com/en-us/library/ee217297(v=exchg.80).aspx 。


推荐阅读