gpt4 book ai didi

javascript - ActiveDirectory 中的 ThumbnailPhoto 返回错误

转载 作者:行者123 更新时间:2023-12-03 01:59:38 25 4
gpt4 key购买 nike

首先我想提一下,我不是 LDAP 专家。

我需要的是从我公司的 ldap 获取一些信息,包括用户照片。我的问题是,在获得所需的所有信息后,thumbnailPhoto似乎已被某种方式损坏。我将展示一个例子:\ufffdPNG\r\n\u001a\n\u0000\u0000\u0000\rIHDR\u0000\u0000\u0000\ufffd\u0000\u0000\u0000\u ...

当我尝试将它应用到我的前端客户端并且无法从返回的缓冲区生成图像时,我第一次注意到这一点。另外,当我检查 LDAP 时,发现返回的照片尺寸几乎是原来的两倍。

我检查了照片保存在 LDAP 中的方式是否存在问题,将其复制粘贴到转换器中,一切正常。

我将给出一个代码片段,说明如何使用名为 activedirectory 的库从 LDAP 获取信息。 :

const ActiveDirectory = require('activedirectory');

exports = module.exports = () => {

return {
auth: (doc) => {
let user = 'project@ad.company.com',
passwd = 'password provided by IT team';

return new Promise((resolve, reject) => {
let ad = new ActiveDirectory({
url: 'ldap://something.ad.company.com:389',
baseDN: 'OU=Company,DC=ad,DC=company,DC=com',
username: user,
password: passwd,
attributes: { user: [] }
});

ad.authenticate(doc.username, doc.password, (err, auth) => {
if(auth){
ad.findUser(doc.username, (err, user) => {
if(err){
reject(err);
} else {
resolve(user);
}
})
} else {
reject(err);
}
});
});
}
}

}

exports['@singleton'] = true;

我已经为此苦苦挣扎了一段时间,但我不明白发生了什么。我对此的唯一信息是在这个link它告诉我们“ldapjs 不知道缩略图实际上是二进制的”,但那是在 2013 年。

我希望得到一些帮助,或者至少是我可以在 Node 中使用 Express 的任何其他方法或库。

目前应用程序使用:

"activedirectory": "^0.7.2",

"electrolyte": "0.3.0",

"express": "^4.16.3",

提前致谢。

最佳答案

再次查看 ActiveDirectory 存储库上发布的所有问题后,我找到了所需的答案。

  const customeParser = function(entry, raw, callback){ if (raw.hasOwnProperty("thumbnailPhoto")){ entry.thumbnailPhoto = raw.thumbnailPhoto; } callback(entry) }      

let ad = new ActiveDirectory({
url: 'ldap://something.ad.company.com:389',
baseDN: 'OU=Company,DC=ad,DC=company,DC=com',
username: user,
password: passwd,
attributes: { user: [] },
entryParser: customeParser
});

在前端,如果您使用的是 Angular 4+:

this.domSanitizer.bypassSecurityTrustUrl('data:image/png;base64,'+ new Buffer(thumbnailPhoto).toString('base64'))

关于javascript - ActiveDirectory 中的 ThumbnailPhoto 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50098026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com