python实例26[验证用户是否存在于LDAP Server]

 

需要安装python2.x 和python-LDAP模块。

python-ldap:http://www.python-ldap.org/

python-ldap的windows版本下载:http://pypi.python.org/pypi/python-ldap/

 

python26实例代码:(用来验证某用户是否存在于LDAP Server)

import time
import ldap

'''
    Need install python-ldap module from:
      http://www.python-ldap.org/
    For windows OS, you can get the module from:
      http://pypi.python.org/pypi/python-ldap/
'''

ldapuser 
= "yourusername";
#ldapuser = "CN=yourusername,OU=XXX,OU=XXX,DC=XXX,DC=XXXXX,DC=com"
ldappass = "youruserpasswd";
ldappath 
= "ldap://yourldapserveriporname:yourldapserverport/";

baseDN 
= "DC=XXX,DC=XXXXX,DC=COM"

FoundResult_ServerBusy 
= "Server is busy"
FoundResult_NotFound 
= "Not Found"
FoundResult_Found 
= "Found"


def _validateLDAPUser(user):
    
try:
        l 
= ldap.initialize(ldappath)
        l.protocol_version 
= ldap.VERSION3
        l.simple_bind(ldapuser,ldappass)

        searchScope  
= ldap.SCOPE_SUBTREE
        searchFiltername 
= "sAMAccountName"
        retrieveAttributes 
= None
        searchFilter 
= '(' + searchFiltername + "=" + user +')'

        ldap_result_id 
= l.search(baseDN, searchScope, searchFilter, retrieveAttributes)
        result_type, result_data 
= l.result(ldap_result_id,1)
        
if(not len(result_data) == 0):
          
#print result_data
          return 1, FoundResult_Found
        
else:
          
return 0, FoundResult_NotFound
    
except ldap.LDAPError, e:
        
#print e
        return 0, FoundResult_ServerBusy
    
finally:
        l.unbind()
        
del l

def validateLDAPUser(user, trynum = 30):
    i 
= 0
    isfound 
= 0
    foundResult 
= ""
    
while(i < trynum):
        
#print "try: " + str(i)
        isfound, foundResult = _validateLDAPUser(user)
        
if(isfound):
          
break
        
#time.sleep(60)
        i+=1
    
print "-------------------------------"
    
print "user is :" + user
    
print "isfound :" + str(isfound)
    
print "FoundResult : " + foundResult
    
return isfound, foundResult

 

 

 

参考:

http://www.grotan.com/ldap/python-ldap-samples.html

http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=python&Number=533078&page=1&view=collapsed&sb=5&o=all

 

http://www.python-ldap.org/doc/html/index.html
 

 

 

完!

posted @ 2011-02-11 18:28  iTech  阅读(6727)  评论(0编辑  收藏  举报