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 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
基于jQuery制作迷你背词汇工具
Jul 27 Javascript
分享20多个很棒的jQuery 文件上传插件或教程
Sep 04 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
php读取sqlite数据库入门实例代码
Jun 25 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
利用Angularjs中模块ui-route管理状态的方法
Dec 27 Javascript
js实现手机拍照上传功能
Jan 17 Javascript
微信小程序实现评论功能
Nov 28 Javascript
JavaScript使用ul中li标签实现删除效果
Apr 15 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
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中获取关键词及所属来源搜索引擎名称的代码
2011/02/15 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
2013/10/22 PHP
php通过session防url攻击方法
2014/12/10 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
JS中setTimeout()的用法详解
2013/04/14 Javascript
js图片自动切换效果处理代码
2013/05/07 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
基于JQuery实现图片轮播效果(焦点图)
2016/02/02 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
2016/12/14 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python如何实现一个刷网页小程序
2018/11/27 Python
python tkinter实现彩球碰撞屏保
2019/07/30 Python
深入了解如何基于Python读写Kafka
2019/12/31 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
python性能测试工具locust的使用
2020/12/28 Python
Java的五个基础面试题
2016/02/26 面试题
临床医学专业学生的自我评价分享
2013/11/21 职场文书
个人职业及收入证明
2014/10/13 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
业务员管理制度范本
2015/08/06 职场文书
微信小程序 根据不同用户切换不同TabBar
2022/04/21 Javascript
Hive日期格式转换方法总结
2022/06/25 数据库