|
楼主 |
发表于 2004-12-22 14:08:39
|
显示全部楼层
下面是一个增加目录项的示例:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import ldap,ldap.modlist #ldap.modlist是ldap的子模块,用于格式化目录服务的数据项
try:
conn = ldap.open("server_name")
conn.protocol_version = ldap.VERSION3
username = "cn=admin,dc=company,dc=com"
password = "123"
conn.simple_bind_s(username,password)
except ldap.LDAPError, e:
print e
try:
dn = "cn=test,dc=card,dc=company,dc=com"
modlist = ldap.modlist.addModlist({ #格式化目录项,除对象类型要求必填项外,
'cn': ['test'], #其它项可自由增减
'objectClass': ['top', 'person', 'organizationalPerson', 'inetOrgPerson'],
'o': ['\xe5\xb9\xbf\xe5\xb7\x9e'], #这些为utf-8编码的中文
'street': ['\xe5\xb9\xbf\xe5\xb7\x9e'],
'sn': ['tester'],
'mail': ['test@163.下com', 'test@21cn.com'],
'homePhone': ['xxxxxxxx'], 'uid': ['test'] })
# print modlist #显示格式化数据项,格式化后是一个元组列表
conn.add_s(dn,modlist) #调用add_s方法添加目录项
except ldap.LDAPError, e:
print e
其实我们也可按格式化后元组列表的形式把目录项直接写到add_s()里,省却转换的步骤。 |
|