Javascript 使用ActiveX获取用户名

Javascript 使用ActiveX获取用户名,javascript,asp-classic,activex,Javascript,Asp Classic,Activex,我正在使用一个用经典ASP编写的旧intranet站点。我正在尝试检索他们登录计算机时使用的用户名。每个用户都登录到AD,但我无法从服务器检索它,因为intranet站点不使用AD 我被告知我可以使用ActiveX来检索它。我做了一些研究,发现了以下代码(javascript): 目前我正在使用IE8,在第一行出现“Automation server无法创建对象”错误 1) 知道我为什么会出错吗 2) 鉴于我的局限性,是否有更好的方法来执行此操作?如果这是在客户端完成的,则必须让用户将站点添加到

我正在使用一个用经典ASP编写的旧intranet站点。我正在尝试检索他们登录计算机时使用的用户名。每个用户都登录到AD,但我无法从服务器检索它,因为intranet站点不使用AD

我被告知我可以使用ActiveX来检索它。我做了一些研究,发现了以下代码(javascript):

目前我正在使用IE8,在第一行出现“Automation server无法创建对象”错误

1) 知道我为什么会出错吗


2) 鉴于我的局限性,是否有更好的方法来执行此操作?

如果这是在客户端完成的,则必须让用户将站点添加到受信任的站点区域,并将安全级别设置为最低。第1行应该在服务器端工作,但我认为第2行是不对的

试试这个

var net = new ActiveXObject ( "WScript.NetWork" );
var username = net.UserName;

基本上,使用Javascript检索客户端的Windows机器信息是不可能的。 因为它的范围仅限于浏览器

为此,您需要创建COM对象或Activex对象,使用ASPX页面,您需要在第一次从浏览器访问页面时将其部署到客户端系统上

现在,ActiveX对象具有使用javascript进行交互的功能。您必须访问COM对象或COM的类和函数,它们进一步与系统类交互以获取系统信息。i、 e已登录客户端的windows用户信息

var net = new ActiveXObject ( "WScript.NetWork" );
var username = net.UserName;
上面的代码也在初始化COM对象,如果它没有部署到您的客户机系统中,这个脚本将无法工作

var net = new ActiveXObject ( "WScript.NetWork" );
var username = net.UserName;