如何使用 Lync SDK 通过电子邮件确定是不是存在有效的 Lync 用户?
Posted
技术标签:
【中文标题】如何使用 Lync SDK 通过电子邮件确定是不是存在有效的 Lync 用户?【英文标题】:How to determine if there is a valid Lync user by email using Lync SDK?如何使用 Lync SDK 通过电子邮件确定是否存在有效的 Lync 用户? 【发布时间】:2011-11-02 14:19:02 【问题描述】:给定一个电子邮件地址,我正在尝试确定它是否是有效用户的登录地址。
我试过下面的代码,但只有在用户之前被Lync客户端查询过的情况下才有效,否则用户被识别为未知。
using Microsoft.Lync.Model;
using Microsoft.Lync.Model.Extensibility;
private bool IsLyncUser(string eMail, out Microsoft.Lync.Model.Contact imContact)
var lyncClient = LyncClient.GetClient();
imContact = lyncClient.ContactManager.GetContactByUri(eMail);
if (null != imContact)
try
var sourceType = (ContactSourceTypes)imContact.Settings[ContactSetting.Source];
return (ContactSourceTypes)0 != (ContactSourceTypes.ExchangeService | ContactSourceTypes.GlobalAddressList | sourceType);
catch
imContact = null;
return false;
问题:
-
为什么只有通过 Lync 客户端 GUI 查询用户时才加载数据?
如何“获取”数据,以便在查询时可用?
是否有更好的方法来查询电子邮件是否属于有效的 Lync 用户?
【问题讨论】:
到目前为止这个问题有答案吗? @Coder323,谢谢你的提问,还没有,希望有人注意到这个,虽然优先级很低,但它仍然困扰着我。 【参考方案1】:我已经看到这个工作正常。也就是说:使用lyncClient.ContactManager.GetContactByUri()
对我来说很好,即使被查询的地址不在客户的联系人列表中(并且没有被查询)。
不过,我正在做的其中一件事是订阅状态更改。我想知道这是否是它对我有用的原因:查找未加载的联系人需要一段时间,所以可能是我的代码最初返回未知,然后在事件中更新。
还要检查一下:您确定您的电子邮件地址是 SIP 前缀的吗? (即格式为 sip:user@domain.com)。
【讨论】:
谢谢汤姆,我已经有一段时间没有发布这个问题了,您是第一个提供任何反馈的人。我总是使用 SIP 地址格式,是的。如何订阅状态更改?我需要尝试一下。 订阅联系人的ContactInformationChanged
事件。但是,这会针对各种事情提出,因此对于存在,请在 EventArgs 中检查 ContactInformationType == Activity。然后,您可以使用 GetContactInformation 查询联系人以检索状态。
感谢@Tom,还没有解决,但现在我知道我会尝试一下,您的解决方案听起来完全符合我的需要。以上是关于如何使用 Lync SDK 通过电子邮件确定是不是存在有效的 Lync 用户?的主要内容,如果未能解决你的问题,请参考以下文章
Lync 2013 客户端 SDK 是不是与 Skype for Business 兼容?