通过JavaScript获取我的网站中当前windows用户的用户ID

通过JavaScript获取我的网站中当前windows用户的用户ID,javascript,active-directory,windows-authentication,smartcard,Javascript,Active Directory,Windows Authentication,Smartcard,我在即将到来的web项目中有一项功能,我必须获取当前登录到计算机/PC的用户的用户ID/电子邮件ID。目标操作系统是Windows 10,仅通过智能卡登录到计算机。用户数据存储在MS-AD中 此用户ID将用于进一步授权并在浏览器中加载应用程序。目标浏览器是IE和Chrome 是否有一种方法可以将通过智能卡登录的用户的EmailID/UserID提取到Javascript中的系统 附加信息:该网站是在私人环境中设置的。没有从内部网外部访问webapp的公共URL。客户端和后端代码托管在云中的VM中

我在即将到来的web项目中有一项功能,我必须获取当前登录到计算机/PC的用户的用户ID/电子邮件ID。目标操作系统是Windows 10,仅通过智能卡登录到计算机。用户数据存储在MS-AD中

此用户ID将用于进一步授权并在浏览器中加载应用程序。目标浏览器是IE和Chrome

是否有一种方法可以将通过智能卡登录的用户的EmailID/UserID提取到Javascript中的系统

附加信息:该网站是在私人环境中设置的。没有从内部网外部访问webapp的公共URL。客户端和后端代码托管在云中的VM中。简言之,所有人都坐在Azure的私有环境中


谢谢

不使用JavaScript。JavaScript在浏览器容器中运行,更具体地说是在当前webview中运行。如果存在网络钓鱼、恶意软件和病毒站点,让JavaScript访问本地计算机上的设置和数据将是一场噩梦

如果您知道哪些计算机将运行您的网站,您可以创建一个应用程序,其中服务器在计算机上空闲运行,就像Spotify的客户端所做的那样(windows客户端可以从网页获取命令)


然后,应用程序/服务器可以尝试从计算机获取电子邮件ID/用户ID,然后让服务器在某个特定端口上运行,然后JavaScript可以使用AJAX请求从浏览器与本地计算机通信。

我可以使用IE中的ActiveX脚本获取Windows登录用户

var WinNetwork = new ActiveXObject("WScript.Network");
alert(WinNetwork.UserName)

这是解决这个问题的好方法吗?

我已经添加了一些关于我们正在使用的基础设施的数据。这会有帮助吗?不幸的是,如果网站只能在内部网上访问,这并不重要,问题不在于服务器位置,而是浏览器安全问题。唯一的方法是如果有客户的支持,我在回答中描述了一种方法。你可以在SE上,这不是唯一的问题。