LYNC开发-登录 | 字痕随行

本文将描述如何使用Microsoft Lync SDK控制Microsoft Lync Client完成登录。

图示

说明

  • 初始化客户端模型,使用《Lync开发-GetClient()》中所介绍的方法获取LyncClient。
  • 注册客户端模型事件“StateChanged”和“CredentialRequested”。
lyncClient.StateChanged += LyncClient_StateChanged;
lyncClient.CredentialRequested += LyncClient_CredentialRequested;
  • 调用BeginSignIn方法,开始登录。
lyncClient.BeginSignIn(_strSIP, null, null, LyncSignInCallback, _lyncClient);
  • 触发CredentialRequested事件。
void LyncClient_CredentialRequested(object sender, CredentialRequestedEventArgs e)
{
    if (e.Type == CredentialRequestedType.SignIn)
    {
        e.Submit(strUserName, strPassWord, blIsRememberPWD);
    }
}
  • 调用EndSignIn方法,结束登录。
void LyncSignInCallback(IAsyncResult ar)
{
    if (ar.IsCompleted)
    {
        try
        {
             ((LyncClient)ar.AsyncState).EndSignIn(ar);
        }
        catch
        {
            throw;
        }
     }
}
  • 触发StateChanged事件。
void LyncClient_StateChanged(object sender, ClientStateChangedEventArgs e)
{
    if (e.NewState == ClientState.SignedIn)
    {
        //登录成功
     }
}

注意事项

调用BeginSignIn方法时,如果第二个和第三个参数输入为null,则会触发CredentialRequested事件。如果输入域账户名称和密码,在正确的情况下会成功登录,并不会触发CredentialRequested事件。

触发CredentialRequested事件,调用Submit方法提交用户信息时,如果用户凭证正确,则登录成功;如果用户凭证不正确,则会再次触发CredentialRequested事件。如果_blIsRememberPWD 等于true,会生成相应的用户证书,下一次调用BeginSignIn方法时,只需要SIP地址(第一个参数),就可以成功登录。

MSDN参考:How to: Sign In to Lync with UI Suppressed

如果有问题,欢迎指正讨论。

image

觉的不错?可以关注我的公众号↑↑↑