从硬件沙盒的ActiveX?备择方案?

时间:2017-07-26 21:32:27

标签: c# asp.net activex internet-explorer-11

我有点腌渍。我正在为之工作的公司正在开发一个ASP .NET MVC网站,该网站涉及客户端的专业级USB扫描仪。使用Silverlight,可以轻松地从应用程序访问扫描仪。然而,由于Silverlight被弃用,我的老板想继续使用另一种技术。我们的生物识别SDK是在C#中,因此ActiveX是显而易见的选择(除了它非常古怪,几乎在每个浏览器中都不受支持,而且非常不安全......你能告诉它不是我的想法吗?)

到目前为止,我一直无法让ActiveX组件与扫描仪通信。作为Windows应用程序运行的相同代码工作正常,但当作为activex applet运行时,似乎无法识别设备已连接。所以我的问题是IE 11 / ActiveX沙箱是否是来自USB设备的ActiveX组件?是否可以在硬件层面发言,也许我错过了什么?这个古老的框架是否有合理的替代方案?

1 个答案:

答案 0 :(得分:0)

只是一个想法 - 可能还有其他(可能更好)的解决方案。

您可以尝试创建桌面应用程序,以便轻松访问设备,然后在应用程序(WebBrowser控件)中托管Web浏览器以用于其余的Web UI。这将允许您在本地与设备通信,然后使用Web服务API从桌面应用程序将信息传递到网站。

这仍然需要您的用户在本地安装某些内容,但它会为您提供集成选项。 (我不是100%肯定,但我不认为你可以在没有本地组件的情况下做到这一点,并且只在IE中支持ActiveX - 我绝对会因为很多原因而避免这种情况。)

当然,您可以创建一个本地应用程序,其中包含从扫描程序获取数据所需的任何UI,然后通过外部浏览器访问网站 - 这实际上取决于您的偏好。 WebBrowser控件可以让您更好地控制浏览器环境,但用户可能还想从其他浏览器/设备访问该站点。

@ Gusman的评论也是一个很好的选择 - 最后,你可能不得不在本地安装。