我在使用 Lync 2013 sdk 时遇到了一个小问题,我的所有用户都与用户图像一起配置在 Active Directory 中。但是当开始登录 lync(在我的应用程序中)时,有时会加载用户图片,有时不会加载,尽管用户图像始终存在于活动目录中。有什么办法可以提高下载用户图片的成功率。其次,如何加快下载图像的过程,使整个过程看起来更快,虽然线程的概念已经实现。
问问题
730 次
2 回答
0
抱歉,我没有答案,但是……注意到您是在星期四发布的,而现在是星期一,没有答案,请考虑在此处发布您的问题:
于 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 回答