node.js下LDAP查询实例分享

目标:

一个LDAP Server获取uid=kxh的用户数据

LDAP地址为:

在工程根目录中,先npm一个LDAP的访问库ldpajs

npm install ldapjs

在工程根目录中,创建一个app.js

rush:js;"> var ldap = require("ldapjs");

//创建LDAP client,把服务器url传入
var client = ldap.createClient({
url: 'ldap://10.203.24.216:389'
});

//创建LDAP查询选项
//filter的作用就是相当于sql的条件
var opts = {
filter: '(uid=kxh)',//查询条件过滤器,查找uid=kxh的用户节点
scope: 'sub',//查询范围
timeLimit: 500 //查询超时
};

//将client绑定LDAP Server
//第一个参数:是用户,必须是从根节点到用户节点的全路径
//第二个参数:用户密码
client.bind('uid=supbind,cn=users,dc=tiger,dc=com','123456',function (err,res1) {

//开始查询
//第一个参数:查询基础路径,代表在查询用户信心将在这个路径下进行,这个路径是由根节开始
//第二个参数:查询选项
client.search('DC=tiger,DC=com',opts,res2) {

//<a href="https://www.jb51.cc/tag/chaxun/" target="_blank" class="keywords">查询</a>结果事件响应
res2.on('searchEntry',function (entry) {

  //<a href="https://www.jb51.cc/tag/huoqu/" target="_blank" class="keywords">获取</a><a href="https://www.jb51.cc/tag/chaxun/" target="_blank" class="keywords">查询</a>的对象
  var user = entry.object;
  var userText = JSON.stringify(user,null,2);
  console.log(userText);

});

res2.on('searchReference',function(referral) {
  console.log('referral: ' + referral.uris.join());
});  

//<a href="https://www.jb51.cc/tag/chaxun/" target="_blank" class="keywords">查询</a><a href="https://www.jb51.cc/tag/cuowu/" target="_blank" class="keywords">错误</a>事件
res2.on('error',function(err) {
  console.error('error: ' + err.message);
  //unbind操作,必须<a href="https://www.jb51.cc/tag/yaozuo/" target="_blank" class="keywords">要做</a>
  client.unbind();
});

//<a href="https://www.jb51.cc/tag/chaxun/" target="_blank" class="keywords">查询</a>结束
res2.on('end',function(result) {
  console.log('search status: ' + result.status);
  //unbind操作,必须<a href="https://www.jb51.cc/tag/yaozuo/" target="_blank" class="keywords">要做</a>
  client.unbind();
});    

});

});

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...