如何在JavaScript中获取当前Windows用户的名称

如何在JavaScript中获取当前Windows用户的名称,javascript,html,windows,Javascript,Html,Windows,我想知道如何在JavaScript中将当前用户的姓名作为HTML文档的一部分 在Java中,可以键入System.getProperty(“user.name”)以实现此目的。JavaScript中的替代方法是什么?JavaScript在当前HTML文档的上下文中运行,因此它无法确定当前用户的任何信息,除非它位于当前页面中,或者您对服务器端脚本进行AJAX调用以获取更多信息 JavaScript将无法确定您的Windows用户名。我认为这是不可能的。如果浏览器访问此类个人信息,这将是一个巨大的安

我想知道如何在JavaScript中将当前用户的姓名作为HTML文档的一部分


在Java中,可以键入
System.getProperty(“user.name”)以实现此目的。JavaScript中的替代方法是什么?

JavaScript在当前HTML文档的上下文中运行,因此它无法确定当前用户的任何信息,除非它位于当前页面中,或者您对服务器端脚本进行AJAX调用以获取更多信息


JavaScript将无法确定您的Windows用户名。

我认为这是不可能的。如果浏览器访问此类个人信息,这将是一个巨大的安全风险

如果脚本在HTA或类似版本的Microsoft Windows上运行,您可以执行以下操作:

var wshshell=new ActiveXObject("wscript.shell");
var username=wshshell.ExpandEnvironmentStrings("%username%");
否则,正如其他人所指出的,你就不走运了。这被认为是私人信息,浏览器不会向javascript引擎提供。

javascript中没有完全兼容的替代方案,因为它存在不安全的安全问题,允许客户端代码识别登录的用户

也就是说,下面的代码将允许您获取登录的用户名,但它仅在Windows上工作,并且仅在Internet Explorer中工作,因为它使用ActiveX。此外,Internet Explorer很可能会显示一个弹出窗口,提醒您与使用此代码相关的潜在安全问题,这对可用性没有帮助

<!doctype html>
<html>
<head>
    <title>Windows Username</title>
</head>
<body>
<script type="text/javascript">
    var WinNetwork = new ActiveXObject("WScript.Network");
    alert(WinNetwork.UserName); 
</script>
</body>
</html>

Windows用户名
var WinNetwork=newActiveXObject(“WScript.Network”);
警报(WinNetwork.UserName);
正如超现实主义梦想所建议的那样,您可以使用AJAX调用服务器端方法来返回用户名,或者使用带有登录用户值的隐藏输入呈现HTML,例如

(ASP.NET MVC 3语法)


在IE上为我工作:

<script type="text/javascript">
  var WinNetwork = new ActiveXObject("WScript.Network");
  document.write(WinNetwork.UserName);
</script>

var WinNetwork=newActiveXObject(“WScript.Network”);
document.write(WinNetwork.UserName);

…但是ActiveX控件需要在安全设置中打开。

当前用户?在JavaScript中,这是一个巨大的安全风险。用户名在上下文中是什么?当你登录到你的计算机时,你有一个用户名。这就是我希望得到的。您希望如何设置当前用户?这可能是或其他的副本(答案通常是你不能…除非你控制服务器端并希望将其作为javascript嵌入或不作为javascript嵌入),或者可能是的副本(请注意,如果我至少理解其中一个答案,除非你将javascript作为firefox附加组件运行,否则这将不起作用)浏览器确实可以访问系统的用户名(或任何相关的系统信息)-但是,浏览器不会将其公开给JS引擎。服务器端脚本如何获取有关客户端操作系统当前用户的更多信息?您可以在localhost上运行脚本。。。?在海报上注明他想要客户端操作系统用户名之前,我提出了这个建议。@DaggNabbit使用SSPI或GSSAPI在服务器端建立用户身份是很常见的。@SimonBrangwin从未听说过这些。为什么不添加一个答案,说明如何在web服务器上使用其中一个来获取客户机用户名等信息?我很想知道这是怎么回事。我们现在能得到当前的用户名吗??jquery中有任何增强吗@超现实主义者并不十分理解ASP.Net的例子。它是获取登录到.Net系统的用户名还是本地计算机用户名(这就是问题所在)?这取决于您使用的身份验证模式。如果您使用的是Windows安全选项User.Identity.Name,则会返回Windows用户名。这不会添加任何尚未包含的信息
<script type="text/javascript">
  var WinNetwork = new ActiveXObject("WScript.Network");
  document.write(WinNetwork.UserName);
</script>