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 相关文章推荐
网站接入QQ登录的两种方法
Jul 22 Javascript
js常用系统函数用法实例分析
Jan 12 Javascript
ECMAScript 5中的属性描述符详解
Mar 02 Javascript
jquery简单的弹出层浮动层代码
Apr 27 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
angularjs通过过滤器返回超链接的方法
Oct 26 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
Sep 27 Javascript
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 Javascript
Vue实现多页签组件
Jan 14 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 Smarty date_format [格式化时间日期]
2010/03/15 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
codeigniter教程之多文件上传使用示例
2014/02/11 PHP
php分页查询的简单实现代码
2017/03/14 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
JavaScript的Function详细
2006/11/14 Javascript
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
Thinkjs3新手入门之添加一个新的页面
2017/12/06 Javascript
jQuery EasyUI window窗口使用实例代码
2017/12/25 jQuery
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
详解js根据百度地图提供经纬度计算两点距离
2019/05/13 Javascript
node.js使用mongoose操作数据库实现购物车的增、删、改、查功能示例
2019/12/23 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
Python实现句子翻译功能
2017/11/14 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
2020/11/01 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
大学毕业生求职自荐信
2014/02/20 职场文书
计划生育目标责任书
2015/05/09 职场文书
2019大学毕业晚会主持词
2019/06/21 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
SpringBoot使用AOP实现统计全局接口访问次数详解
2022/06/16 Java/Android