鉴于电子邮件地址,我正在尝试确定它是否是有效用户的登录地址。
我已尝试过以下代码,但只有在用户之前已由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;
}
问题:
答案 0 :(得分:1)
我看到这个工作正常。也就是说:使用lyncClient.ContactManager.GetContactByUri()
对我来说很好,即使被查询的地址不在客户的联系人列表中(并且没有被查询过)。
我正在做的事情之一也是订阅状态变化。我想知道这是不是为什么它对我有用:查找非加载联系人需要一段时间,因此可能是我的代码最初返回Unknown,然后在事件中更新。
还要检查一下:您确保您的电子邮件地址是SIP加前缀的吗? (即格式为sip:user@domain.com)。