Есть ли способ передать учетные данные текущего пользователя Windows в LyncClient.Submit () - PullRequest
1 голос
/ 01 марта 2011

Я создаю приложение In / Out в системном трее, которое взаимодействует с Microsoft Lync Server через API-интерфейс Microsoft Lync.Есть ли способ передать имя пользователя и пароль текущего пользователя Windows в Lync API, чтобы пользователи автоматически входили в систему вместо того, чтобы каждый раз вводить учетные данные?

1 Ответ

2 голосов
/ 01 марта 2011

Нет, в отличие от, например, доступа к веб-службе, нет способа заставить Lync использовать учетные данные вошедших в систему пользователей.Вы можете увидеть это с самим клиентом Lync при первом запуске его на своем компьютере - вам будет предложено ввести учетные данные домена, даже если вы вошли на компьютер как пользователь домена.

Все непотерян, однако, поскольку Lync (по умолчанию) будет сохранять учетные данные по мере их ввода, а затем представлять их обратно на сервер каждый раз, когда он входит в систему как этот пользователь.Вы можете проверить, установлен ли Lync для сохранения паролей в реестре:

[HKEY_CURRENT_USER\Software\Microsoft\Communicator]
"SavePassword"=dword:00000001

Чтобы воспользоваться этим в API, вам необходимо:

  1. Инициализировать клиент
  2. Зарегистрировать событие lyncClient.CredentialRequested
  3. Вызвать lyncClient.BeginSignIn, передав sip uri пользователя, вошедшего в систему (свойство lyncClient.Uri обычно устанавливается в uriпользователь, который последний раз вошел в систему, для удобства).Введите null для имени пользователя и пароля.

Теперь - если ваш пользователь ранее не входил в Lync (или ваше приложение), вы получите событие CredentialRequested.

  1. Отмените событие, используя CredentialRequestedEventArgs.Cancel ()
  2. Показать некоторый интерфейс для получения имени пользователя и пароля от пользователя, затем вызовите BeginSignIn с этими учетными данными
  3. В качестве альтернативы, вызовите BeginSignIn с пустыми именем пользователя и паролемзатем обработайте CredentialRequested и отправьте учетные данные на сервер, используя метод Submit в CredentialRequestedEventArgs (последний параметр в методе Submit должен иметь значение True, чтобы сохранить пароль)

(я могу 'Не забывайте, какой метод из 2 или 3 выше является рекомендуемым - лучше всего попробовать оба и посмотреть, с чем вам больше всего повезло)

В следующий раз, когда пользователь войдет в систему (при условии, что SavePasswordв реестре установлено значение true), сохраненные учетные данные будут переданы, поэтому пользователь войдет в систему.n без запуска события CredentialRequested.

В этой статье MSDN достаточно подробно описывается процесс (я предполагаю, что вы запускаете Lync в режиме подавления пользовательского интерфейса, поскольку это только проблема врежим подавления)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...