【问题标题】:How to get user's exchange/outlook/office365 photo?如何获取用户的exchange/outlook/office365照片?
【发布时间】:2016-03-08 07:15:01
【问题描述】:

我们公司使用 Office 365。因此,当用户登录我的 asp.net mvc 网站时,我想显示他们的照片,就像 Outlook 一样。

outlook 从哪里获取用户的照片?以及如何以编程方式实现它?

我尝试打开 ActiveDirectory 并获取 thumbnailPhoto,但对于大多数用户来说它是空白的。因此,Outlook 必须在别处获得它。在哪里以及如何?

我还看到了一些使用 Microsoft.Office.Interop.Outlook 程序集的示例(假设它需要安装 Outlook 才能运行)。但是,此网站在未安装 Outlook 的服务器上运行。

【问题讨论】:

标签: c# asp.net outlook exchange-server office365


【解决方案1】:

我尝试打开 ActiveDirectory 并获取 thumbnailPhoto,但对于大多数用户来说它是空白的。因此 Outlook 必须是 在别处得到它。在哪里以及如何?

用户照片在您的 ADon-premise 中不可用,因为除非您提供,否则您的用户很可能一开始就没有将其存储在那里使用将其写入 AD 的应用程序。

用户照片在您的 ADAzure 中可用,因为您的用户很可能在 Outlook(或在线)中应用他们的照片。

我假设您的本地 AD 正在通过 DirsyncADConnect 实用程序与 Azure AD 同步。如果是,那么实际上 photothumbnailphoto 属性仅单向同步(从本地到 Azure)并且不会写回。参考here for DirSynchere for ADConnect

这就是为什么您无法从广告中删除它。

如何获取用户的exchange/outlook/office365照片?

有很多方法可以从 Azure AD 获取照片:

  1. Exchange Web 服务 (EWS): 使用 GetUserPhoto 操作。基本上发送带有电子邮件地址和大小的 SOAP 信封。 XML 响应将为您提供 PictureData 元素中包含的 base64 编码的照片

  2. Exchange Web 服务(EWS 托管 API 和/或 REST API): 基本上使用自动发现服务到 URL https://outlook.office365.com/ews/exchange.asmx,然后通过 EWS.Service.ConnectToService 方法连接到 @987654337 @ 命名空间,您需要对其进行库引用(一个您可以 download from here 的 DLL)。方法保持不变GetUserPhoto,并且图像以二进制形式包含在响应中。

  3. Outlook REST API: 基本上是在 URL https://outlook.office.com/api/{version}/me/photo 向 Outlook API 发送 GET 请求(带有不记名访问令牌)拥有,并在 URL https://outlook.office.com/api/{version}/users/email@example.com/photo。你得到二进制格式的照片流作为响应。不要忘记附加 $value 以获取 blob,否则您将获得元数据。 More details referenced here.

  4. Office 365 统一 API(又名 Graph):与旧 API 基本相同。向 URL https://graph.microsoft.com/{version}/me/photo/ 发送 GET 请求(带有不记名令牌)以获取您自己的照片,https://graph.microsoft.com/{version}/users/UPN/photo 以获取其他用户。或多或少相同。 More details referenced here。还有a sandbox here 供您探索示例和API 参考。您也可以自己尝试一下online interactively here在触发您的获取请求之前不要忘记登录

希望对您有所帮助。

更多参考资料:hereherehere

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 2016-11-09
    • 2023-03-16
    • 1970-01-01
    • 2018-10-27
    • 2020-07-08
    相关资源
    最近更新 更多