【发布时间】:2011-03-01 16:40:57
【问题描述】:
我正在创建一个通过 Microsoft Lync API 与 Microsoft Lync Server 交互的 In/Out 系统托盘应用程序。有没有办法将当前 windows 用户的用户名和密码传递给 Lync API,以便用户自动登录,而不是让他们每次都输入凭据?
【问题讨论】:
标签: c# login credentials suppress lync
我正在创建一个通过 Microsoft Lync API 与 Microsoft Lync Server 交互的 In/Out 系统托盘应用程序。有没有办法将当前 windows 用户的用户名和密码传递给 Lync API,以便用户自动登录,而不是让他们每次都输入凭据?
【问题讨论】:
标签: c# login credentials suppress lync
不,不像例如访问 Web 服务时,无法强制 Lync 使用登录用户凭据。当您第一次在计算机上运行 Lync 客户端时,您可以看到它本身 - 即使您以域用户身份登录到计算机,系统也会提示您输入域凭据。
不过,所有内容都不会丢失,因为 Lync(默认情况下)会在输入凭据时保存它们,然后在每次以该用户身份登录时将它们呈现给服务器。您可以检查 Lync 是否设置为在注册表中保存密码:
[HKEY_CURRENT_USER\Software\Microsoft\Communicator]
"SavePassword"=dword:00000001
要在 API 中利用这一点,您需要:
现在 - 如果您的用户之前没有登录到 Lync(或您的应用程序),您将收到一个 CredentialRequested 事件。
(我不记得上面 2 或 3 中的哪种方法是推荐的方法 - 最好都尝试一下,看看哪种方法最幸运)
下次用户登录时(假设 SavePassword 在注册表中设置为 true),保存的凭据将被传递,因此用户将在没有触发 CredentialRequested 事件的情况下登录。
This MSDN article 很好地涵盖了该过程(我假设您在 UI 抑制模式下运行 Lync,因为这只是抑制模式下的问题)
【讨论】: