Как определить, есть ли действительный пользователь Lync по электронной почте с помощью Lync SDK? - PullRequest
3 голосов
/ 02 ноября 2011

Учитывая адрес электронной почты, я пытаюсь определить, является ли он действительным адресом для входа пользователя.

Я попробовал приведенный ниже код, но он работает только в том случае, если пользователь запросил клиент 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;
}

Вопросы:

  1. Почему данные загружаются только при запросе пользователя через графический интерфейс клиента Lync?
  2. Как я могу "извлечь" данные, чтобы они были доступны при запросе?
  3. Есть ли лучший способ запросить, принадлежит ли электронная почта действительному пользователю Lync?

1 Ответ

1 голос
/ 22 июня 2012

Я видел это работает нормально.То есть: использование lyncClient.ContactManager.GetContactByUri() отлично работает для меня, даже если запрашиваемый адрес отсутствует в списке контактов клиента (и не был запрошен).

Одна из вещей, которые я делаюхотя также подписывается на изменения присутствия.Интересно, вот почему это работает для меня: поиск не загруженных контактов занимает некоторое время, поэтому мой код первоначально возвращает Unknown, а затем обновляется в событии.

Просто чтобы проверить также: вы гарантируете, что ваши адреса электронной почты имеют префикс SIP?(т.е. в формате sip: user@domain.com).

...