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 相关文章推荐
JavaScript 组件之旅(三):用 Ant 构建组件
Oct 28 Javascript
原生javascript获取元素样式属性值的方法
Dec 25 Javascript
基于jquery的无缝循环新闻列表插件
Mar 07 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
Sep 22 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
JS实现微信弹出搜索框 多条件查询功能
Dec 13 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
jQuery中ajax获取数据赋值给页面的实例
Dec 31 jQuery
分析javascript原型及原型链
Mar 18 Javascript
微信小程序实现简易table表格
Jun 19 Javascript
微信小程序时间戳转日期的详解
Apr 30 Javascript
js实现查询商品案例
Jul 22 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接口和抽象类使用示例详解
2014/03/02 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
javascript使用activex控件的代码
2011/01/27 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
Node.js中创建和管理外部进程详解
2014/08/16 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vue 样式绑定的实现方法
2019/01/15 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
Python HTMLTestRunner测试报告view按钮失效解决方案
2020/05/25 Python
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
美国亚马逊旗下男装网站:East Dane(支持中文)
2019/09/25 全球购物
美国优质宠物用品购买网站:Muttropolis
2020/02/17 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
C语言笔试题
2014/09/04 面试题
武汉东之林科技有限公司机试
2013/09/17 面试题
银行学习十八大感想
2014/01/11 职场文书
法人任命书范本
2014/06/04 职场文书
2015年上半年计生工作总结
2015/03/30 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js
Python3的进程和线程你了解吗
2022/03/16 Python