Bonjour,
J'ai une application qui s’exécute selon les droits que les utilisateurs possèdent sur le domaine. (ex : une autorisation de visualisation de factures, etc...)
J'utilise pour cela la fonction LDAP en récupérant le nom d'utilisateur (login de session windows).
Ex : je fait partie du groupe Utilsa. du domaine (nom du dossier Active Directory = MonDomaine/Users)
Du coup j'aimerai pouvoir récupérer les groupes auxquels sont rattachés le groupe Utilisa. du domaine.
Voici un exemple d'architecture :
gdl_autorisation_societe_X => Utilisa. du domaine => Moi
Les => représentent "contient"
Dois-je plutôt partir du haut, et faire une boucle récursive pour atteindre mon utilisateur ? Ou y a-t-il une API ou une fonction LDAP sur Windev qui me donne tous les groupes que pourrait accéder mon profil ?
Voici comment je récupère mon utilisateur, et je propose un bout de code qui pourrait servir de base à une discussion.
Code pour recherche des groupes pour mon utilisateur :
Normalement ici je devrais retrouver mon groupe Utilisa. du domaine, mais c'est le seul que je ne retrouve pas par rapport au contenu du dossier dans l'Active Directory concernant ma liste membre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 //Recherches LDAP lsLUtilisateur est une chaîne = RéseauUtilisateur() lsDomaine est une chaîne = INILit("Parametrage_AD", "domaine", "Domaine de recherche LDAP non récupéré", gsFichierParametresIni) lsCritere est une chaîne = "(&(objectCategory=person) (objectClass=user) ((sAMAccountName=" + lsLUtilisateur + ")))" strDN est une chaîne = LDAPRecherche("MaSession",lsDomaine, lsCritere)
Code pour une éventuelle boucle récursive en partant du haut :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 //lsListeFils est une chaine = LDAPListeFils("MaSession", lsDomaine) //POUR TOUTE CHAINE lsUnFils DE lsListeFils SEPAREE PAR RC // Trace("Fils : " + lsUnFils + RC) // trace(LDAPValeur("MaSession",lsUnFils, "MemberOf")) //FIN
Partager