一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python ldap實現登錄實例代碼

Python ldap實現登錄實例代碼

2020-09-09 09:48張瑜 Python

今天給大家分享python idap實現登錄的實例代碼,代碼簡單易懂,需要的朋友一起看看吧

下面一段代碼是小編給大家介紹的Python ldap實現登錄實例代碼,一起看看吧

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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

原文鏈接:http://www.cnblogs.com/work115/archive/2016/09/30/5923278.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品亚洲精品青青青 | 性一交一乱一伧老太 | 午夜私人影院在线观看 视频 | 国产在线极品 | 好大好硬快点好爽公 | 久久香蕉国产免费天天 | 男人天堂影院 | 亚洲AV综合99一二三四区 | 四虎在线播放 | 香蕉久久夜色精品国产尤物 | 久久久精品免费免费直播 | 日本 视频 在线 | 久久综合中文字幕佐佐木希 | 国产在线视频一区二区三区 | 午夜性色一区二区三区不卡视频 | 久久青草费线频观看国产 | 四虎免费影院在线播放 | 韩国办公室激情 | 久久久久久88色偷偷 | 性欧洲女人18 | 热剧库| 精品精品国产yyy5857香蕉 | 女仆色永久免费网站 | 8天堂资源在线官网 | kuaibo成人播放器 | 亚洲成色 | 精品国产自在现线久久 | 免费视频专区一国产盗摄 | 手机看片黄色 | 男女男在线精品网站免费观看 | 白发在线视频播放观看免费 | 小早川怜子视频在线观看 | bl双性受乖调教改造身体 | 黑人巨大vs北条麻妃在线 | 波多野 在线 | 好男人免费高清在线观看2019 | 色帝国亚洲欧美在线蜜汁tv | 亚洲a视频在线 | 国产综合第一页 | 蝴蝶传媒免费安装 | 日日摸日日添日日透 |