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 相关文章推荐
js 学习笔记(三)
Dec 29 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
Jan 07 Javascript
javascript 实现键盘上下左右功能的小例子
Sep 15 Javascript
Node.js插件安装图文教程
May 06 Javascript
servlet+jquery实现文件上传进度条示例代码
Jan 25 Javascript
对于Javascript 执行上下文的全面了解
Sep 05 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
js实现简单数字变动效果
Nov 06 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
Feb 10 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
Aug 08 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 Javascript
关于JS中的作用域中的问题思考分享
Apr 06 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批量生成缩略图的代码
2008/07/19 PHP
PHP使用Mysql事务实例解析
2014/09/08 PHP
php jsonp单引号转义
2014/11/23 PHP
总结PHP内存释放以及垃圾回收
2018/03/29 PHP
PHP抽象类与接口的区别实例详解
2019/05/09 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
js DOM模型操作
2009/12/28 Javascript
JavaScript中yield实用简洁实现方式
2010/06/12 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
JQuery自动触发事件的方法
2015/06/13 Javascript
一个炫酷的Bootstrap导航菜单
2016/12/28 Javascript
详解javascript中对数据格式化的思考
2017/01/23 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
2020/01/02 Javascript
vue实现购物车的监听
2020/04/20 Javascript
[15:15]教你分分钟做大人:狙击手
2014/10/30 DOTA
python的几种开发工具介绍
2007/03/07 Python
python中精确输出JSON浮点数的方法
2014/04/18 Python
Python守护进程用法实例分析
2015/06/04 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
基于Django用户认证系统详解
2018/02/21 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
Django form表单与请求的生命周期步骤详解
2020/06/07 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
意大利制造的男鞋和女鞋:SCAROSSO
2018/03/07 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
业务副厂长岗位职责
2014/01/03 职场文书
运动会跳远加油稿
2014/02/20 职场文书
Win10 Anaconda安装python-pcl
2022/04/29 Servers