3

我有一个WPF带有WebBrowser控件的应用程序,它从本地磁盘加载一个 HTML 文件。在 HTML 文件中,我有 javascript 代码来创建一个 Office Lync Presence ActiveX Control ( 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 弹出窗口。

4

2 回答 2

0

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

AllowPartiallyTrustedCallers (APTCA) 属性放在程序集上。

以下是一些其他选择:

于 2013-10-05T23:37:12.853 回答
0

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

于 2018-09-05T07:33:55.013 回答