问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python-ldap有什么用

发布网友 发布时间:2022-04-18 18:13

我来回答

2个回答

懂视网 时间:2022-04-18 22:35

这篇文章详解使用python-ldap实现登录方法

ldap_config = {
 'ldap_path': 'ldap://xx.xx.xx.xx:389',
 'base_dn': 'ou=users,dc=ledo,dc=com',
 'ldap_user': 'uid=reporttest,ou=users,dc=ledo,dc=com',
 'ldap_pass': '111111.0',
 'original_pass': '111111.0'
}

ldap_message = {
 0: 0, #'ok'
 1: 1, #'用户名或密码错误'
 2: 2, #ldap验证异常'
}

import ldap
import base64
import hashlib
from config_message import ldap_config, ldap_message


class LDAP_API(object):

 _ldap_path = ldap_config['ldap_path']
 _base_dn = ldap_config['base_dn']
 _ldap_user = ldap_config['ldap_user']
 _ldap_pass = ldap_config['ldap_pass']
 _original_pass = ldap_config['original_pass']

 # 连接ldap服务器
 def __init__(self):

 try:
  self.ldapconn = ldap.initialize(self._ldap_path)
  self.ldapconn.protocal_version = ldap.VERSION3
  self.ldapconn.simple_bind(self._ldap_user, self._ldap_pass)

 except ldap.LDAPError, e:
  print e

 # 验证用户登录
 def ldap_check_login(self, username, password):

 obj = self.ldapconn
 searchScope = ldap.SCOPE_SUBTREE
 # searchFilter = '(&(cn='+username+')(userPassword='+password+'))'
 searchFilter = 'uid=' + username

 try:
  obj.search(self._base_dn, searchScope, searchFilter, None) # id--2
  # 将上一步计算的id在下面运算
  result_type, result_data = obj.result(2, 0)
  if result_type != ldap.RES_SEARCH_ENTRY:
  return {'status': ldap_message[1], 'data': ''}
  dic = result_data[0][1]
  l_realname = dic['sn'][0]
  l_password = dic['userPassword'][0]
  md_password = LDAP_API.hash_md5(password)
  if l_password in (password, md_password):
  return {'status': ldap_message[0], 'data': l_realname}
  else:
  return {'status': ldap_message[1], 'data': ''}
 except ldap.LDAPError, e:
  return {'status': ldap_message[2], 'data': ''}

 @staticmethod
 def hash_md5(data):
 md = hashlib.md5()
 md.update(str(data))
 a = md.digest()
 b = '{MD5}' + base64.b64encode(a)
 return b

热心网友 时间:2022-04-18 19:43

首先需要安装python-ldap的模块在这里用的是windows系统,当然比较容易安装后在python的交互环境里输入importldap如果没有问题就说明安装成功了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
烟台大学自考专科、机电一体化工程、室内设计、视觉传达设计哪一个升... 我在学校的时候是学的机电一体化,现在出来工作做的室内设计。现在想靠... 方向助力泵轴轴向有串动,松动正常吗? 看书时老是想玩手机怎么办? 浙江幼儿园除甲醛哪家专业 宁波口碑好除甲醛哪家强 校内奖学金个人总结 奖学金评定个人总结(优质8篇) 国内OA办公系统有哪些品牌 深圳市宝德科技股份有限公司济南分公司怎么样? 腰粗怎么健康减肥?怎么才能拥有迷人的小蛮腰呢? 2016年上半年软考会考软件评测师吗 我有一定的基础,开发过多种8位单片机及外围电路,现在想提高自己的硬件设计水平,多了解一些实际工程中 触摸感应触控IC选型表,电池供电内建LDO,抗干扰,防水低功耗等等系列,有没有好推荐的,我司用大小家电 pmos与nmos的LDO哪个电源纹波抑制好? 你们最喜欢的音乐家? 建行支出活期储蓄人民币是什么意思 美团是用什么支付的 请问哈希溶氧仪LDO 使用方法,谢谢 建设银行到底是什么收费项目!!! 建行网上银行跨行收手续费是什么 哪个app还能用美团 美团外卖可以用生意火外卖接单器吗? 什么软件免费发短信 有没有免费群发短信的软件 梦见和别人煮蛇肉吃是什么意思? 梦见和自己喜欢的男生在一起吃蛇肉,还亲怎么办? 4比多少等于0.4等于4除以2.5等于百分之几多少等于几折 几比10少4个 4比5少百分之几? 怎么搭讪不认识的路人小姐姐 怎么撩小姐姐呢? 安徽经济生活频道19:45播放什么电视剧 学Java,选哪个IT学校好? 针式打印机的报废的色带,是否如普通垃圾一个处理,请告知处理方法?谢谢! 用什么电脑玩游戏更流畅? 针式打印机色带怎么可以完全利用 关于怪的成语有哪些 春夏睡袋选择哪个牌子好 怪组成语有哪些 19年的19年春夏新款,大家比较看好哪个牌子呢? 春夏用哪些牌子的护肤品效果是真正的好? 春夏润滑油如何选择? 信用卡还款之后能不能马上再取钱出来 什么成语中有怪 与鬼怪有关的成语 描写奇怪的词语 怪和惊是什么成语 每次洗脸,在水中放点盐,除了可以杀菌,还有什么功效? 谁有人工智能入门教材