• 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

  • 相关阅读:
    软链接的应用(在同一目录下方便查看日志)
    decimal模块
    python的request包
    jmeter的环境配置
    java交互方式中的同步与异步
    mysql数据库的快捷键
    [LeetCode]Number of Islands
    [LeetCode]Binary Tree Right Side View
    [LeetCode]House Robber
    [微软实习生2014]K-th string
  • 原文地址:https://www.cnblogs.com/poissonnotes/p/3011406.html
Copyright © 2020-2023  润新知