我在使用Lync 2013 sdk时遇到一个小问题,我的所有用户都在Active目录中配置了用户图像。但是,当开始登录lync(在我的应用程序中)时,有时用户图片会被加载,有时候虽然用户图像总是存在于活动目录中。有没有办法提高下载用户图像的成功率。其次,如果已经实现了线程概念,如何加快下载图像的过程,使整个过程看起来更快。
答案 0 :(得分:0)
抱歉,我没有答案,但是......注意到你星期四发布了,这里是周一没有答案的,请考虑在这里发贴你的问题:
答案 1 :(得分: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照片的效果如何。