84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
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,修改密碼的代碼如下: