【问题标题】:presence control in asp.net web applicationsasp.net web 应用程序中的状态控制
【发布时间】:2011-02-18 15:19:38
【问题描述】:

我已经设法在我自己的自定义构建应用程序中实现了 Sharepoint 中使用的 Name.NameCtrl.1 active x 以显示状态。一切正常,我正在根据 Office 通信服务器上的用户状态正确更新在线状态。但是,我没有像在 SharePoint 中那样在状态控件中获得有关用户的任何其他详细信息。我得到的只是电子邮件字段中的 sip 地址(而不是 AD 中真正的默认电子邮件地址)和一个安排会议的链接。

谁能告诉我如何让控件填充来自 AD(部门、电子邮件、电话等)的详细信息,就像在 sharepoint 中一样?我也没有像 sharepoint 这样的控件中的组织选项卡。

有什么想法吗?

谢谢,

基尼

【问题讨论】:

    标签: asp.net sharepoint user-presence


    【解决方案1】:

    NameCtrl 从客户端计算机上正在运行的 Communicator(或 Lync,如果您使用它)实例获取其大部分数据。没有数据直接从 SharePoint 拉回。要让 NameCtrl 在您的网页上正常工作,您需要确保:

    • Communicator(或 Lync)正在客户端上运行,并且已登录
    • 您从中调用 NameCtrl 的网页位于浏览器的 Intranet 或 Trusted Sites 区域中

    推荐的模式是在调用任何其他方法之前在 NameCtrl 对象上调用 PresenceEnabled - 如果返回 false,则上述先决条件之一(或两者)为 false。下面的代码通常对我有用

    <script>
    
    var sipUri = "your.contact@your.domain.com";
    
    var nameCtrl = new ActiveXObject('Name.NameCtrl.1');
    if (nameCtrl.PresenceEnabled)
    {
      nameCtrl.OnStatusChange = onStatusChange;
      nameCtrl.GetStatus(sipUri, "1");
    }
    
    
    function onStatusChange(name, status, id)
    {
      // This function is fired when the contacts presence status changes.
      // In a real world solution, you would want to update an image to reflect the users presence
      alert(name + ", " + status + ", " + id);
    }
    
    function ShowOOUI()
    {
      nameCtrl.ShowOOUI(sipUri, 0, 15, 15);
    }
    
    function HideOOUI()
    {
      nameCtrl.HideOOUI();
    }
    
    </script>
    
    <span onmouseover="ShowOOUI()" onmouseout="HideOOUI()" style="border-style:solid">Your Contact</span>
    

    如果您还没有看过它,有一个很好的(ish)NameCtrl 参考here

    【讨论】:

    • Paul,我将所有内容都包含在 [if (nameCtrl.PresenceEnabled) { }] 状态中,并且我可以在通信器中更改我的状态,它会更新我在网页中的图标。它仍然不会填充任何其他详细信息电子邮件、部门、电话等,而且我仍然没有获得组织选项卡。您是否在自定义应用中获得这些详细信息?
    • 只是预感 - 您是否在联系人的 sip uri 前加上“sip:”?如果是,请尝试删除它,如果不是,请尝试添加它。当我的虚拟机启动时,我将对此进行测试
    • 另外,作为健全性检查,确保您感兴趣的信息实际上是由 Lync 或 Communicator(您正在使用,顺便说一句?)获取的 - 您应该能够做到这一点通过查看您的联系人的联系人卡片。如果 Lync/Communicator 未显示此信息,则 NameCtrl 将无法
    • 我得到与 sip: 前缀和没有相同的功能(存在)。不过仍然没有广告详细信息。
    • 我正在使用办公室通讯器。查看某人的联系卡可以告诉我他们下一次有空的时间、职位描述、部门等。
    【解决方案2】:

    我认为在 SharePoint 中,控件填充了用户配置文件服务中存在的数据。如果您希望在非共享点 ASP.NET Web 应用程序中使用此功能,则必须从 AD 构建用户配置文件详细信息存储库(并缓存它!)您的控件将查看该存储库以显示该信息。

    【讨论】:

    • -1,因为数据是从 Lync/Communicator 而非 SharePoint 中拉回的。 NameCtrl 自己负责缓存所有数据,应该不需要自己缓存任何东西
    猜你喜欢
    • 2015-10-30
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多