【发布时间】:2021-11-13 10:50:10
【问题描述】:
我想知道是否可以(以及如何)使用 JavaScript 从 Web 浏览器进行一些 Win32 API 调用。我目前对此事的理解使我得出结论,我需要某种 ActiveX 控件,然后可以使用该控件轻松地进行所需的调用。然而,网络上的文章阅读警告我,使用 ActiveX 不是跨浏览器的解决方案。现在我不想强迫我的用户只使用 IE,据我所知,它是唯一支持 ActiveX 的浏览器。不过,我确实想让这个功能只对 Windows 用户可用。
我想要的是获取当前登录的用户和他的 SID 并将此信息发送到 Web 应用程序,该应用程序将处理此数据,将其存储到数据库等。此外,我可能需要一些调用来访问硬件加密设备连接到客户端计算机(即带有证书的 USB 令牌)。
如何获得?我需要为每个网络浏览器编写单独的插件吗?如果这一切都可以使用 C# 完成,那将是首选,但原生 C++ 对我来说也不陌生,所以如果第一个不可能,我可以退回到后者。
【问题讨论】:
-
为什么需要用户的 SID?那不是很便携。至于用户登录的用户名,在你的 web 应用中使用 NTLM 身份验证怎么样?
-
@RemyLebeau 的想法是创建一个与 Windows 登录一起使用的单点登录系统。您登录到 windows,打开网站,网站通过您的 windows 登录识别您,瞧,您已通过身份验证。我不想将此功能限制为仅限 AD,这就是我需要自定义解决方案的原因。
-
@RemyLebeau 还有,这是 Internet 应用程序,我认为 NTLM 在这里不是一个可行的选择。
标签: javascript winapi plugins cross-browser activex