Node.Js - 获取 windows 用户名

Node.Js - Get windows username

我正在尝试获取 运行 我的 node.jS 应用程序(该应用程序始终 运行 在 Windows机)。

如何使用 Node.Js 获取当前的 windows 用户名?

我试图在 C# 中为 node.js 或 whoamI[= 找到类似于 WindowsIdentity.GetCurrent().Name 的内容20=]命令在CMD.

虽然节点有内置的操作系统功能osos.hostname()到return的主机名,但您需要在ASP.NET中访问客户端的主机名或您选择的语言。您不能在节点中执行此操作,因为它在服务器端 运行 并且与客户端的本地信息无关。

> require('os')
> os.hostname()

看这道题

Determine Client's Computer Name

在 ASP.NET 又名客户端中获取客户端主机名

System.Net.Dns.GetHostEntry( Request.ServerVariables["REMOTE_HOST"]).HostName;

懒人用勺子喂食

string IP = Request.UserHostName;
string compName = CompNameHelper.DetermineCompName(IP);

code from compnamehelper:

public static string DetermineCompName(string IP)
    {
        IPAddress myIP = IPAddress.Parse(IP);
        IPHostEntry GetIPHost = Dns.GetHostEntry(myIP);
        List<string> compName = GetIPHost.HostName.ToString().Split('.').ToList();
        return compName.First();
    }

MICROSOFT DOCUMENTATION

我相信你是在说你有一个 Asp.NET 应用程序,并想使用 Node.js 确定当前用户的用户名,然后将其提交给你的 Asp.NET 应用程序.

我不在 Windows 上开发,尽管从 this question 我相信这可能存储为环境变量。 process.env 是环境变量的 javascript 映射/字典,可能包含用户用户名。

或者你可以从用户主目录解析它:

var path = require('path'); var username = path.sep(process.env['USERPROFILE'])[2];

我上面链接的问题暗示 USERPROFILE 解析为 C:\Users\USERNAME\。然后我拆分路径并采用第三个元素,即用户名。

同样,我没有 windows 机器,无法确认这一点。希望这能让你走上正确的道路。

干杯。

自 Node v6 (2016-04) 起,您可以只使用 os.userInfo :

var os = require('os');
os.userInfo().username

获取当前登录用户名:

var path = require('path');
var userName = process.env['USERPROFILE'].split(path.sep)[2];
var loginId = path.join("domainName",userName);
console.log(loginId);

我知道这不会像 OP 所要求的那样为 Web 应用程序的客户端用户提供,但是当 运行 Node 应用程序时,这个问题在试图获取登录用户的搜索结果中排名很高本地。

您可以使用 Windows 中的环境变量重现 whoamIWindowsIdentity.GetCurrent()<domain>\<username> 输出。

process.env.USERDOMAIN + '\' + process.env.USERNAME

如果您想使用 USERPROFILE:

process.env.USERDOMAIN + '\' + process.env.USERPROFILE.split('\').pop()

有人创建了一个名为 username 的模块,它可以为您完成所有艰苦的工作。

你喜欢用它

var username = require('username');

console.log( username.sync() );

从 Node v6 (2016-04) 开始,您可以只使用 os.userInfo :

获取当前登录用户名:

var path = require('path');
var userName = process.env['USERPROFILE'].split(path.sep)[2];
var loginId = path.join("domainName",userName);
console.log(loginId);

一旦我们从上面获得用户名 code.we 客户端无法访问此用户名 api side.it 显示此方法的 401 资源