0

我在使用 Lync 2013 sdk 时遇到了一个小问题,我的所有用户都与用户图像一起配置在 Active Directory 中。但是当开始登录 lync(在我的应用程序中)时,有时会加载用户图片,有时不会加载,尽管用户图像始终存在于活动目录中。有什么办法可以提高下载用户图片的成功率。其次,如何加快下载图像的过程,使整个过程看起来更快,虽然线程的概念已经实现。

4

2 回答 2

0

抱歉,我没有答案,但是……注意到您是在星期四发布的,而现在是星期一,没有答案,请考虑在此处发布您的问题:

Microsoft Lync 客户端开发论坛

于 2014-02-24T16:22:18.437 回答
0

使用 Lync API 时,类似于以下的代码应该将图片作为流提供给您,然后您可以随意使用它。

foreach (Contact contact in results.Contacts)
{
    List<ContactInformationType> lookup = new List<ContactInformationType>();
    lookup.Add(ContactInformationType.DisplayName);
    lookup.Add(ContactInformationType.Photo);

    IDictionary<ContactInformationType, object> contactDetails = contact.GetContactInformation(lookup);

    Stream s = (Stream)contactDetails[ContactInformationType.Photo];
    if (s != null)
    {
        string PicturePath = "Photos\\" + (string)contactDetails[ContactInformationType.DisplayName] + ".jpg";
        StreamWriter sw = new StreamWriter(PicturePath, false);
        CopyStream(s, sw.BaseStream);
        sw.Close();
    }
}

这非常快,根据我的经验,总是从 Lync 返回照片。

您是否将组策略 DisplayPhoto 设置为 PhotosFromADOnly 以确保仅使用 AD 中的照片,否则用户可以选择自己的照片,Lync API 将返回这些照片而不是 AD 中的照片。

最后一个选项可能是从 AD 目录获取图像。

获取用户的电子邮件地址并在 AD 中搜索。然后读出thumbnailPhoto 属性。

Byte[] Photo = (Byte[])user.Properties["thumbnailPhoto"].Value; 

客户端上的 Lync 联系人数据并不总是与 AD 保持同步,可能需要长达一天的时间才能同步,我不太确定 Lync 照片的效果如何。

于 2014-02-25T05:40:07.400 回答