如何在ASP.NET Forms应用程序的客户端嵌入第三方DLL

时间:2011-12-15 18:09:50

标签: asp.net web-applications

我很抱歉这里有非常冗长的介绍,但我想详细解释我的问题。

我们的某个供应商提供了第三方dll,为他们的数据提供基于Silverlight的用户界面。

我们已经在两个不同的项目中使用了这个dll:

  1. IE工具栏按钮,用于打开与该网页上当前显示的数据(另一个Web应用程序)相关的第三方数据的UI窗口。
  2. 当用户按下特定键组合时从另一个Windows应用程序调用的Windows应用程序(.exe)(再次从该应用程序传递参数)。
  3. 我们还有一个有效的ASP.NET(表单)内部网应用程序(内部开发)。该应用程序的用户还希望该DLL提供轻松访问。我需要一个解决方案来实现它。

    由于我们有公司控制的环境,我们有.NET Framework,Silverlight,用户机器上安装的工具栏和可执行文件以及IE中运行的所有Web应用程序。

    到目前为止,我能够调用现有的exe(我在#2中提到)并将我的asp.net应用程序中的参数作为ActiveX传递(类似于此处描述的How to launch an EXE from Web page (asp.net))。它可以工作,但每次它给出标准弹出窗口“此页面上的ActiveX控件可能不安全......”。

    我还尝试创建自己的dll,包装第三方dll并使用<object> html标记将其嵌入到我的asp.net页面中。它也有效,但每次都会显示相同的弹出窗口。

    以下是我的选择(按优先顺序):

    1. 在我的asp.net应用程序的现有页面中嵌入由第三方dll提供的UI(可能包含在另一个dll中)(目前它打开一个新窗口)。
    2. 使用参数调用可执行文件(就像我现在这样做),但没有关于ActiveX安全性的恼人弹出窗口。
    3. 使用<object>标记嵌入dll作为富客户端自定义控件。
    4. 无论哪种方式,我都不希望用户每次去第三方应用程序时都能看到弹出窗口。

      有什么办法吗?

1 个答案:

答案 0 :(得分:0)

如果对象标记代码在没有用户参与的情况下毫不费力地运行,那将是病毒/恶意软件传递机制。

一种方法是签署activex对象,然后让所有机器信任它,例如

Sign an ActiveX control for intranet usage?