Je vous
livre ici mes premiers tests d’accès une annuaire LDAP. Ici il s’agit d’un
Active Directory simple.
#####Déclaration de collection de
procédure#####
CONSTANTE
LDAP = "SESSION_LDAP"
FIN
gbBConnecte est un
booléen
//Connecté ou
non au LDAP
gsHote
est une chaîne
//Adresse du
serveur LDAP
gsUtilisateur est une
chaîne
//Utilisateur
LDAP
gsMotDePasse est une
chaîne
//Mot de passe
Utilisateur LDAP
gnPort
est un entier
//Port du
serveur LDAP
gnVersion
est un entier
//Version
d'Active Directory
#####Procédure globale Connecte#####
PROCEDURE
Connecte()
//Connection au
serveur LDAP
bRes est un
booléen
//On vérifie que
l'init à été faite
SI gsHote = "" ALORS RENVOYER
Faux
//On remplit la
structure LDAP
LDAPSession.Hote = gsHote
LDAPSession.Utilisateur = gsUtilisateur
LDAPSession.MotDePasse = gsMotDePasse
LDAPSession.Port = gnPort
LDAPSession.Version = gnVersion
//Tentative de
connexion
bRes = LDAPConnecte(LDAP)
SI bRes ALORS
gbBConnecte=Vrai
RENVOYER
bRes
#####Procédure globale
ListeCollaborateur#####
PROCEDURE
ListeCollaborateur(_Séparateur=RC)
sListeFils
est une chaîne
unFils
est une chaîne
sListeCol
est une chaîne
sCN est
une chaîne
sValMemberOf
est une chaîne
bTower
est un booléen
bUtilReseau
est un booléen
sdisplayName
est une chaîne
//Liste des
collaborateurs.
sListeFils = LDAPListeFils(LDAP,"OU=Collaborateurs,DC=societe,DC=com")
//Parcours la
liste des fils de « OU=Collaborateurs »
POUR TOUTE
CHAINE unFils DE
sListeFils SEPAREE PAR
RC
//Pour chaque
fils, il faut vérifier si il fait partie de PERSONNE
//Membersof
contient CN=PERSONE_PHYSIQUE
sValMemberOf
= LDAPValeur(LDAP,unFils,"MemberOf")
SI Position(sValMemberOf,"CN=PERSONE_PHYSIQUE")= 0
ALORS
//C'est un c’est
un collaborateur
sCN = LDAPValeur(LDAP,unFils,"CN")
sListeCol+=sCN+_Séparateur
FIN
FIN
RENVOYER
sListeCol