【发布时间】:2017-10-18 13:04:14
【问题描述】:
我正在尝试使用 node.js 从 AD 获取信息。我试过activedirectory 和ldapauth-fork 并且通常代码可以工作,但是如果我需要一些octetstring 数据,比如objectGUID,我会在对象中看到一个垃圾字符串。我found 将二进制数据转换为 utf-8 格式的字符串。但问题是数据在转换过程中被损坏(很多带有 65533 代码的 cahrs),我无法将字符串恢复为原始二进制文件。
如何访问octetstring 格式的数据以获得正确的二进制表示?
const ActiveDirectory = require('activedirectory');
const config = {
url: 'LDAP://ldap.example.com',
baseDN: 'OU=Users,DC=example,DC=com',
username: 'user@example.com',
password: 'password'
};
const ad = new ActiveDirectory(config);
const query = {
filter: '(objectClass=user)',
attributes: ["dn", "cn", "objectGUID", "objectSid"]
};
ad.findUsers(query, function (err, result) {
if (err) {
return console.error(err);
}
console.log(result.length);
console.log(result[0]); // objectGUID contains rubbish
console.log([...result[0].objectGUID].map(ch => ch.charCodeAt(0)));
});
相关:
【问题讨论】:
标签: javascript node.js active-directory ldap