来自硬件的 ActiveX 沙箱?备择方案?

ActiveX sandboxed from hardware? Alternatives?

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

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

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

您可以尝试创建一个桌面应用程序,这样您就可以轻松访问设备,然后在该应用程序 (WebBrowser Control) 中托管 Web 浏览器以供网络的其余部分使用 UI。这将允许您在本地与设备通信,然后使用 Web 服务 API.

从桌面应用程序将信息传递到网站

这仍然需要您的用户在本地安装一些东西,但它为您提供了一个集成选项。 (我不是 100% 确定,但我不认为没有本地组件就可以做到这一点,而且 ActiveX 仅在 IE 中受支持——出于很多原因,我绝对会避免这种情况。)

当然,您可以使用 UI 从扫描仪获取数据所需的任何内容创建一个本地应用程序,然后通过外部浏览器访问该网站 - 这完全取决于您的喜好。 WebBrowser 控件可能会让您对浏览器环境有更多的控制,但用户可能仍然希望从其他浏览器/设备访问该站点。

@Gusman 的评论也是一个不错的选择 - 最后,您可能必须在本地安装一些东西。