亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Python ldap實(shí)現(xiàn)登錄實(shí)例代碼

Original 2017-01-09 17:06:18 365
abstract:今天給大家分享python idap實(shí)現(xiàn)登錄的實(shí)例代碼下面一段代碼是小編給大家介紹的Python ldap實(shí)現(xiàn)登錄實(shí)例代碼,一起看看吧ldap_config = {   'ldap_path': 'ldap://xx.xx.xx.xx:389',   'base_dn': 

今天給大家分享python idap實(shí)現(xiàn)登錄的實(shí)例代碼

下面一段代碼是小編給大家介紹的Python ldap實(shí)現(xiàn)登錄實(shí)例代碼,一起看看吧

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, #'用戶名或密碼錯(cuò)誤'
  2: 2, #ldap驗(yàn)證異常'
}
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服務(wù)器
  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
  # 驗(yàn)證用戶登錄
  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
      # 將上一步計(jì)算的id在下面運(yùn)算
      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

更多關(guān)于Python ldap實(shí)現(xiàn)登錄實(shí)例代碼關(guān)注PHP中文網(wǎng)(ipnx.cn)其他文章!

Release Notes

Popular Entries