84669 orang belajar
152542 orang belajar
20005 orang belajar
5487 orang belajar
7821 orang belajar
359900 orang belajar
3350 orang belajar
180660 orang belajar
48569 orang belajar
18603 orang belajar
40936 orang belajar
1549 orang belajar
1183 orang belajar
32909 orang belajar
ringa_lee
这个问题终于解决了···1,因为修改密码需要使用ldaps协议,所以首先需要搭建一个ldap的认证服务器(需要配置域名,因为使用ip有可能connect不上),具体配置步骤可以给我留言,我将免费提供。2,修改密码的代码如下:
# 修改密码时,不需要老密码的方式 def ldap_update_pass(old_pass, new_pass): ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) my_ldap = ldap.initialize('ldaps://adc.xxx.com:636') # ldaps://adc.xxx.com:636就是你配置的ldaps认证服务器 my_ldap.set_option(ldap.OPT_REFERRALS, 0) my_ldap.set_option(ldap.OPT_PROTOCOL_VERSION, 3) my_ldap.set_option(ldap.OPT_X_TLS, ldap.OPT_X_TLS_DEMAND) my_ldap.set_option(ldap.OPT_X_TLS_DEMAND, True) my_ldap.set_option(ldap.OPT_DEBUG_LEVEL, 255) try: dn = get_dn(3) # 这里获取用户的dn,因为重点是修改密码,所以get_dn()方法细节就不展示出来了 my_ldap.simple_bind_s(dn, old_pass) unicode_pass = unicode("\"" + str(new_pass) + "\"", "iso-8859-1") password_value = unicode_pass.encode("utf-16-le") add_pass = [(ldap.MOD_REPLACE, 'unicodePwd', [password_value])] my_ldap.modify_s(dn, add_pass) return True except Exception, e: pass finally: my_ldap.unbind_s() del my_ldap return False
这个问题终于解决了···
1,因为修改密码需要使用ldaps协议,所以首先需要搭建一个ldap的认证服务器(需要配置域名,因为使用ip有可能connect不上),具体配置步骤可以给我留言,我将免费提供。
2,修改密码的代码如下: