问题描述
|
需要在Intranet上运行的ASP.NET页启动本地Windows应用程序(VB6 exe)。最初计划使用ActiveX控件,但是与ActiveX控件有关的一般安全问题(实际的和可感知的)导致我们考虑使用ClickOnce方法来解决此问题。用户将单击一个链接,该链接将启动ClickOnce应用程序(ClickOnce应用程序只是一个启动VB6应用程序的.NET Windows应用程序)。从安全角度来看,这是更好的解决方案吗?
解决方法
为什么不能简单地将要启动的应用程序发布为ClickOnce应用程序?
发布ClickOnce应用程序时,它将始终检查服务器是否有任何更新,如果没有更新,它将启动该应用程序的缓存安装。这与发布应用程序时生成的默认ClickOnce安装页面上的“启动”链接具有相同的效果。您可以发布该应用程序,然后将URL从启动链接复制到您的网站,以达到相同的效果。
我不建议您使用上述方法。我不知道您的具体情况,但是很明显,如果用户计算机上不存在VB6应用程序,或者如果该应用程序位于其他安装位置,则上面提到的ClickOnce应用程序将无法工作。
为了解决您的安全问题,我不是Active X专家,但是如果从您的Intranet内部使用ActiveX组件,我认为不会启动它。实际上,我认为ActiveX的问题在于启用恶意网站时,恶意网站可以注入有害的ActiveX病毒。我不是安全专家,所以我可能是错的。但是,让我感到惊讶的是,托管ActiveX服务将是一个安全问题(假设您的代码合法;)