【发布时间】:2012-01-21 10:01:07
【问题描述】:
很抱歉在这里介绍了很长时间,但我想详细解释我的问题。
我们有一个来自我们的供应商之一的第 3 方 dll,可为他们的数据提供基于 Silverlight 的用户界面。
我们已经在两个不同的项目中使用了该 dll:
- IE 工具栏按钮,用于打开与网页上当前显示的数据相关的第 3 方数据的 UI 窗口(另一个 Web 应用程序)。
- 当用户按下特定组合键(再次从该应用程序传递参数)时从另一个 Windows 应用程序调用的 Windows 应用程序 (.exe)。
我们还有一个工作的 ASP.NET(表单)内部网应用程序(内部开发)。该应用程序的用户还希望该 DLL 提供的轻松访问。我需要一个解决方案来使它成为可能。
由于我们拥有企业控制环境,我们在用户的计算机上安装了 .NET Framework、Silverlight、工具栏和可执行文件,并且所有 Web 应用程序都在 IE 中运行。
到目前为止,我能够调用现有的 exe(我在 #2 中提到的)并将我的 asp.net 应用程序中的参数作为 ActiveX 传递(类似于这里 How to launch an EXE from Web page (asp.net) 中的描述)。它可以工作,但每次它都会给出标准弹出窗口“此页面上的 ActiveX 控件可能不安全......”。
我还尝试创建自己的 dll 来包装第 3 方 dll 并使用 <object> html 标记将其嵌入到我的 asp.net 页面中。它也可以工作,但每次都会显示相同的弹出窗口。
这是我的选择(按偏好顺序):
- 在我的 asp.net 应用程序的现有页面中嵌入由第 3 方 dll(可能包装在另一个 dll 中)提供的 UI(目前它会打开一个新窗口)。
- 使用参数调用可执行文件(就像我现在所做的那样),但不会弹出关于 ActiveX 安全性的恼人提示。
- 使用
<object>标记嵌入 dll 作为富客户端自定义控件。
无论如何,我都不希望用户在每次访问 3rd 方应用程序时都看到弹出窗口。
有什么办法吗?
【问题讨论】: