otrzymuję błąd:ldap_mod_replace() [function.ldap-mod-replace]: Modyfikacja: Serwer nie chce wykonać
Server is unwilling to perform
podczas zmiany unicodePwd w AD przez PHP. Jednak jestem w stanie wyszukiwać, dodawać, usuwać i modyfikować wszelkie atrybuty użytkowników.
Użycie konta administratora do powiązania i administratora ma pełne prawa do zmiany haseł wszystkich użytkowników.
Oto kod używam:
<?php
$dn = "CN=Vishal Makwana,OU=Address Book,DC=example,DC=com";
$ad = ldap_connect("ldap://example.com")
or die("Couldn't connect to AD!");
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3);
$bd = ldap_bind($ad,"[email protected]","admin1");
if($bd) {
echo "AD bind successfully";
}
else {
echo "Couldn't bind AD";;
}
$user["unicodePwd"] = "asdf1234";
$result = ldap_mod_replace($ad, $dn, $user);
if ($result) echo "User modified!"; else
echo "There was a problem!";
ldap_unbind($ad);
?>
Bardzo dziękuję David, ale jestem nieco zdezorientowany. Kiedy próbowałem użyć połączenia SSL, (ldaps: //), to nawet nie wiąże się z AD. Mam na myśli, czy powinienem coś zrobić, aby włączyć obsługę SSL w Apache lub PHP? Jeśli tak, jak mogę to zrobić. –
nie powinno "{$ newpassword {$ i}} \ 000" be "{$ newpassword [$ i]} \ 000" tj. Nawiasów kwadratowych zamiast kręconych? – redreinard