Office名称控件PresenceEnabled始终为false

问题描述 投票:3回答:2

我有一个带有WPF控件的WebBrowser应用程序,它从本地磁盘加载一个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时,我收到了预期的警告说“为了帮助保护您的安全,您的网络浏览器限制了这个文件......(等等)”。当我允许被阻止的内容时,上面相同的代码工作正常,我可以从ShowOOUI调用中看到Lync弹出窗口。

javascript wpf internet-explorer-9 activex
2个回答
0
投票

我有什么想法可以解决这个问题?

AllowPartiallyTrustedCallers (APTCA) attribute放在组件上。

以下是其他一些选择:


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.