node.js下LDAP查询实例分享


Posted in Javascript onSeptember 30, 2015

目标:

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

LDAP地址为:ldap://10.233.21.116:389

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

npm install ldapjs

在工程根目录中,创建一个app.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, function (err, res2) {

    //查询结果事件响应
    res2.on('searchEntry', function (entry) {
      
      //获取查询的对象
      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());
    });  
    
    //查询错误事件
    res2.on('error', function(err) {
      console.error('error: ' + err.message);
      //unbind操作,必须要做
      client.unbind();
    });
    
    //查询结束
    res2.on('end', function(result) {
      console.log('search status: ' + result.status);
      //unbind操作,必须要做
      client.unbind();
    });    
    
  });
  
});
Javascript 相关文章推荐
jquery tools 系列 scrollable学习
Sep 06 Javascript
jquery蒙版控件实现代码
Dec 08 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
JavaScript实现添加及删除事件的方法小结
Aug 04 Javascript
RequireJS使用注意细节
May 15 Javascript
ES6学习笔记之Set和Map数据结构详解
Apr 07 Javascript
简单谈谈require模块化jquery和angular的问题
Jun 23 jQuery
9种使用Chrome Firefox 自带调试工具调试javascript技巧
Dec 22 Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
Jul 04 Javascript
js控制随机数生成概率代码实例
Mar 21 Javascript
Javascript中replace()小结
Sep 30 #Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 #Javascript
谈谈JavaScript异步函数发展历程
Sep 29 #Javascript
JavaScript 对象深入学习总结(经典)
Sep 29 #Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 #Javascript
jQuery中的ajax async同步和异步详解
Sep 29 #Javascript
网页从弹窗页面单选框传值至父页面代码分享
Sep 29 #Javascript
You might like
php中引用符号(&)的使用详细介绍
2016/12/06 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
JS Timing
2007/04/21 Javascript
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
javascript 同时在IE和FireFox获取KeyCode的代码
2010/02/07 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
jquery中$(#form :input)与$(#form input)的区别
2014/08/18 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
Vue中之nextTick函数源码分析详解
2017/10/17 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
使用vuepress搭建静态博客的示例代码
2019/02/14 Javascript
JS Ajax请求会话过期处理问题解决方法分析
2019/11/16 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
2020/03/03 Javascript
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
用tensorflow实现弹性网络回归算法
2018/01/09 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
Python实现Dijkstra算法
2018/10/17 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
关于python下cv.waitKey无响应的原因及解决方法
2019/01/10 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Python 发送邮件方法总结
2020/08/10 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
《登鹳雀楼》教学反思
2014/04/09 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
颐和园导游词400字
2015/01/30 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
同乡会致辞
2015/07/30 职场文书