Lync2013的登录

1. Lync2013登录的几个关键函数

 

a) LyncClient.BeginInitialize(InitializeCallback, AsyncState)

i. InitializeCallback:异步回调委托函数,在此委托函数中我们要自定义lync的初始化事件。一般在此回调函数中都要包括LyncClient.EndInitialize (IAsyncResult asyncResult) 系统函数,来结束初始化。

ii. AsyncState:lync的状态,可以为null值。

 

b) LyncClient.BeginSignIn(userURI, userDomain, password, SigninCallback, sender)

i. userURI :lync的sip协议帐号,例如“sip:xxxx@ consoto.com”

ii. userDomain :域用户名,例如:“xxxx@ consoto.com”,一般情况下,userURI与userDomain除了前缀“sip”之外,其他的都是一致的。

iii. password :见文思义,登录密码。

iv. SigninCallback :异步回调委托函数,在此委托函数中我们要自定义用户登录成功后的处理事件。一般在此回调函数中都要包括LyncClient .EndSignIn (IAsyncResult asyncResult)系统函数,来处理登录后的状态。

v. sender :传递过来的Object.

 

2. 引入DLL

 

在编写lync2013的登录程序时,一定要引用“Microsoft.Lync.Model.dll”,

clip_image001

这个dll一般在lync2013安装目录下的一个zip压缩包内,

clip_image002

 

3. 设置全局变量

 

在class代码中要加入一个全局变量

LyncClient lyncClient;

并且在登录窗体初始化的时候也要将其创建一个实例

lyncClient = LyncClient.GetClient();

 

4. 登录流程及事件

 

Lync2013登录的流程图如下:

clip_image004

由上图可知

Lync2013登录的时候有几个事件:

1) 初始化事件

2) 登录状态改变事件

3) 凭据获取事件

所以在登录窗体初始化时可以将这几个事件利用委托注册一下:

lyncClient.StateChanged += new EventHandler<ClientStateChangedEventArgs>(lyncClient_StateChanged);
    lyncClient.CredentialRequested += new EventHandler<CredentialRequestedEventArgs>(lyncClient_CredentialRequested);
    lyncClient.SignInDelayed += new EventHandler<SignInDelayedEventArgs>(lyncClient_SignInDelayed);

lyncClient.StateChanged:登录状态改变事件句柄;

lyncClient.CredentialRequested:登录状态改变事件句柄;

lyncClient.SignInDelayed:当在登录及自动唤醒产生延迟时的处理事件句柄

委托事件lyncClient_StateChanged,lyncClient_CredentialRequested,lyncClient_SignInDelayed自行编写

一般格式为:

 

void lyncClient_StateChanged(object sender, ClientStateChangedEventArgs e)

{

//to do something;

……

}

void lyncClient_CredentialRequested(object sender, CredentialRequestedEventArgs e)

{

e.Submit(@"consoto\user1", "wewa1", e.IsPasswordSaved);

//to do something;

……

}

void lyncClient_SignInDelayed(object sender, SignInDelayedEventArgs e)

{

//to do something;

……

}

初始化事件可以在适当的时机进行,比如在点击登录按钮时

private void button1_Click(object sender, RoutedEventArgs e)

{

lyncClient.BeginInitialize(InitializeCallback, null);

//to do something;

……

}

参考:http://msdn.microsoft.com/en-us/library/lync/hh345263.aspx

posted @ 2013-04-09 23:19  poisson_notes  阅读(2192)  评论(0编辑  收藏  举报