如何从 express 获取当前的 Windows 用户?

sqr*_*sqr 5 user-agent node.js express

嗨,我是 Nodejs 和 Express 框架的新手。

我正在实现一个简单的 CRUD 应用程序,用户希望从 MS Windows 访问该页面。我想注销当前的 Windows 用户名。

我试过在页面上记录 User-Agent 字符串,似乎 User-Agent 不包含 Windows 用户名。这是真的?什么是实现这一点的正确方法?

res.render('search', {user: req.get('User-Agent')});    
Run Code Online (Sandbox Code Playgroud)

然后在玉,

body
    p welcome, #{user}!
Run Code Online (Sandbox Code Playgroud)

这是我得到的:

Welcome, Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36!
Run Code Online (Sandbox Code Playgroud)

Fab*_*oni 5

User-Agent不包括Windows用户名。请查看维基百科以获取更多信息。

您的问题的一个可能解决方案可能是 NTLM 身份验证。要添加此安装并可选择将express-ntlm保存为依赖项:

npm install express-ntlm [--save]
Run Code Online (Sandbox Code Playgroud)

然后 require 并添加它作为中间件来表达:

var ntlm = require('express-ntlm');
app.use(ntlm());
Run Code Online (Sandbox Code Playgroud)

然后,您将能够使用UserNamein jade:

body
    p welcome, #{ntlm.UserName}!
Run Code Online (Sandbox Code Playgroud)

如果您想进行真正的NTLM 身份验证并使用 Active Directory 验证凭据,您也可以这样做:

app.use(ntlm({
    domain: 'MYDOMAIN',
    domaincontroller: 'ldap://myad.example',
}));
Run Code Online (Sandbox Code Playgroud)