Les contrĂŽles sont des objets spĂ©ciaux qui peuvent ĂȘtre envoyĂ©s avec une requĂȘte LDAP pour modifier le comportement du serveur LDAP lors de l'exĂ©cution de la requĂȘte. Il peut Ă©galement y avoir des contrĂŽles envoyĂ©s par le serveur avec la rĂ©ponse pour fournir plus d'informations, gĂ©nĂ©ralement pour rĂ©pondre Ă un objet de contrĂŽle de la requĂȘte.
Note:
Tous les contrÎles ne sont pas supportés par tous les serveurs LDAP. Pour savoir quels contrÎles sont supportés par un serveur, il faut interroger le DSE racine en lisant un dn vide avec le filtre (objectClass=*).
Exemple #1 Testing support for paged result control
<?php
// $ds est un identifiant de lien valide pour un serveur de répertoire
$result = ldap_read($ds, '', '(objectClass=*)', ['supportedControl']);
if (!in_array(LDAP_CONTROL_PAGEDRESULTS, ldap_get_entries($ds, $result)[0]['supportedcontrol'])) {
die("This server does not support paged result control");
}
?>
Ă partir de PHP 7.3, il est possible d'envoyer des contrĂŽles avec la requĂȘte dans toutes
les fonctions de requĂȘte en utilisant le paramĂštre controls. Lorsqu'une version
étendue d'une fonction existe, il est recommandé de l'utiliser si on veut
accĂ©der Ă l'objet de rĂ©ponse complet et ĂȘtre capable de parser
les contrÎles de réponse à partir de celui-ci en utilisant ldap_parse_result().
controls doit ĂȘtre un tableau contenant un tableau pour chaque contrĂŽle Ă envoyer,
contenant les clés suivantes :
false.
La plupart des valeurs de contrĂŽle sont envoyĂ©es au serveur en BER-encodĂ©. Il est possible de soit BER-encoder la valeur soi-mĂȘme, ou il est possible de plutĂŽt passer un tableau avec les clĂ©s correctes pour que l'encodage soit fait automatiquement. Les contrĂŽles supportĂ©s pour le passage en tant que tableau sont :
LDAP_CONTROL_PAGEDRESULTS
Les clés attendues sont [size] et [cookie]
LDAP_CONTROL_ASSERT
La clé attendue est filter
LDAP_CONTROL_VALUESRETURNFILTER
La clé attendue est filter
LDAP_CONTROL_PRE_READ
La clé attendue est attrs
LDAP_CONTROL_POST_READ
La clé attendue est attrs
LDAP_CONTROL_SORTREQUEST
Attend un tableau de tableaux avec les clés attr, [oid], [reverse].
LDAP_CONTROL_VLVREQUEST
Les clés attendues sont before, after, attrvalue|(offset, count), [context]
Les contrĂŽles suivants n'ont pas besoin de valeur :
Le contrÎle LDAP_CONTROL_PROXY_AUTHZ est un cas spécial
car sa valeur n'est pas censĂ©e ĂȘtre BER-encodĂ©e, il est donc possible
d'utiliser directement une chaĂźne pour sa valeur.
Lorsque les contrÎles sont parsés par ldap_parse_result(), les valeurs sont transformées en tableau si supportées. Ceci est supporté pour :
LDAP_CONTROL_PASSWORDPOLICYRESPONSE
Les clés sont expire, grace, [error]
LDAP_CONTROL_PAGEDRESULTS
Les clés sont size, cookie
LDAP_CONTROL_PRE_READ
Les clés sont dn et les noms d'attributs LDAP
LDAP_CONTROL_POST_READ
Les clés sont dn et les noms d'attributs LDAP
LDAP_CONTROL_SORTRESPONSE
Les clés sont errcode, [attribute]
LDAP_CONTROL_VLVRESPONSE
Les clés sont target, count, errcode, context