办公室名称控制状态已启用始终为假

Office Name Control PresenceEnabled is always false

本文关键字:启用 控制 状态 办公室      更新时间:2023-09-26

我有一个带有WebBrowser控件的WPF应用程序,它从本地磁盘加载HTML文件。在HTML文件中,我有javascript代码来创建Office Lync Presence ActiveX控件(Name.NameCtrl.1)对象,该对象用于显示某些用户的联系人卡片。

对象已创建,但名称控件的 PresenceEnabled 属性始终为 false。任何想法如何解决这个问题?

我在计算机上安装了 Lync 2013。当我使用 Lync 2010 时,相同的代码工作正常。

我的浏览器是IE 9,我在IE 8和IE 10上也观察到了同样的问题(目前仅针对IE)。

Javascript 代码:

try {
    var presenceObj = new window.ActiveXObject("Name.NameCtrl.1");
} catch (err) { }
function showLync(element) {
    try {
        // Works fine till this part. However, presenceObj.PresenceEnabled is false.
        presenceObj.ShowOOUI("somecalculatedalias", 0, $(element).offset().left, $(element).offset().top);
    } catch (err) {
        // goes into the catch block above with a "Permission denied" error (-2146828218)
    }
}

更多详情:我已将 MOTW(网络标记)添加到我的 HTML 页面,以确保它在没有警告的情况下显示,并且我可以看到该页面确实在正确的区域中加载。从页面属性:Local intranet | Protected Mode: Off .

当我删除此 MOTW 时,我按预期收到警告,指出"为了帮助保护您的安全,您的 Web 浏览器已限制此文件......(等等)"。当我允许被阻止的内容时,上面的相同代码工作正常,我可以看到来自 ShowOOUI 呼叫的 Lync 浮出控件。

任何想法如何解决这个问题?

将允许部分信任的调用方 (APTCA) 属性放在程序集上。

以下是一些其他选择:

  • 安全区域
  • 网络的标记

如果控件用于不在 Intranet 或受信任站点上的页面上,或者即时消息程序(如 Windows Live Messenger/Skype for Business)的受支持版本未运行,则false PresenceEnabled 属性。