PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Ou se trouve le DN dans le LDAP !!!
Ou se trouve le DN dans le LDAP !!!
Débuté par mickael.masse, 16 fév. 2006 13:22 - 5 réponses
Posté le 16 février 2006 - 13:22
Bonjour,

G rencontrer un probleme concernant le DN (Distinguished name), G reussi a me connecter sur un annuaire ldap afin de récupérer le login et le mot de passe, mais maintenant ce que je voudrais faire c'est lister tous les attributs des objets dans l'AD (Active Directory), afin de recuperer les groupes auquels il appartiennent.

Pour cela g cru comprendre qu il fallait faire un LDAPLISTEATTRIBUT mais lorsque je manipule cette fonction il me demande le nom de session:(ca c bon) mais ensuite le DN, et lorsque je fais ENTER il me demande de parcourir... pour chercher je suppose l objet . donc voila je suis un peu embetter ..

Merci de me répondre.
Posté le 16 février 2006 - 17:27
Facile ton DN comme tu l'as dis c'est bien le Distingueshed Name c'est a dire la base de ton domaine par exemple google.fr le DN c'est dc=google,dc=fr c'est le domaine sur lequel est ton active directory autre exemple si tu veux parcourir la rubrique Computers dans l'active directory c'est de la forme

cn=Computers,dc=google,dc=fr par exemple voila j espere t avoir aidé par contre n oublie pas les " " "cn=Computers,dc=google,dc=fr" de cette forme Ciao
Posté le 16 février 2006 - 17:27
si je fais :

lstComputersDN = LDAPRecherche(SessionName,"dc=bopack,dc=com","(objectclass=computer)")
ComputersDN = ExtraitChaîne(lstComputersDN,rangPremier,CRLF)
WHILE ComputersDN<>EOT
Trace(">>>>>>>>>>>>>>>>>>>>>"+ComputersDN)
Trace(LDAPListeAttribut(SessionName,ComputersDN))
ComputersDN = ExtraitChaîne(lstComputersDN, rangSuivant,CRLF)
END

je recupére les attributs des computers de l'ADSI
Posté le 16 février 2006 - 17:28
Un exemple complet de scan de objets de la classe computers
i est un entier
SessionName est une chaîne = "LDAP"
DomainName, lstComputersDN, ComputersDN, lstAttribut, Attribut sont des chaînes

DomainName = LDAPGetDomainName()
LDAPRAZ()
LDAPSession.Hote = LDAPGetServerName(DomainName)
LDAPSession.Port = 389
LDAPSession.Version = 2
LDAPSession.Utilisateur = RéseauUtilisateur+"@"+DomainName
LDAPSession.MotDePasse = <<<LE MOT DE PASSE>>>
IF LDAPConnecte(SessionName) THEN
lstComputersDN = LDAPRecherche(SessionName,"dc=bopack,dc=com","(objectclass=computer)")
ComputersDN = ExtraitChaîne(lstComputersDN,rangPremier,CRLF)
WHILE ComputersDN<>EOT
Trace("---------------------------------------------")
Trace("DN du computer ="+ComputersDN)
lstAttribut = LDAPListeAttribut(SessionName,ComputersDN)
Attribut = ExtraitChaîne(lstAttribut,rangPremier,CRLF)
WHILE Attribut<>EOT
IF LDAPNbValeur(SessionName,ComputersDN,Attribut)>0 THEN
Trace("Attribut ="+Attribut)
FOR i=1 TO LDAPNbValeur(SessionName, ComputersDN, Attribut)
Trace(TAB+ChaîneConstruit("Valeur %1=%2",i,LDAPValeur(SessionName, ComputersDN, Attribut,i)))
END
END
Attribut = ExtraitChaîne(lstAttribut,rangSuivant,CRLF)
END
ComputersDN = ExtraitChaîne(lstComputersDN, rangSuivant,CRLF)
Multitâche(-1)
END
LDAPDéconnecte(SessionName)
ELSE
Erreur("Buggggg")
END

*************************************
Par contre tu écris "...afin de récupérer le login et le mot de passe..." peut tu m'expliquer comment tu récupére le mot de passe ?????
*************************************
Posté le 17 février 2006 - 10:37
//pour recuperer le login ainsi que le mot de pase jet t envoie mon code qui marche c //tester

//il faut o prealable il faut faire deux fenetres !! et dont une login (nouvelle //fenetre-standard-mot de passe/login)

bVerif est un booléen
sHotepik est une chaîne
sUserpik est une chaîne
sPasswd est une chaîne
bPingpik est un booléen

sHotepik = "nom de domaine" //(exemple: google.fr)
sUserpik=Login.SAIS_PSEUDO //login etant la fenetre login et sais_pseudo etant le le champ ou tu rentre ton log !!!
sPasswd=Login.SAIS_MDP //login etant la fenetre login et sais_mdp etant le champ ou tu rentre ton Mdp!!!
bPingpik =Ping("nom de domaine") //(exemple:google.fr)
sUserpik = sUserpik + "@nom de domaine" //(exemple:@google.fr)

LDAPRAZ()
LDAPSession.Hote = sHotepik
LDAPSession.Port = 389
LDAPSession.Version = 3
LDAPSession.Utilisateur = sUserpik
LDAPSession.MotDePasse = sPasswd
test est un booléen=LDAPConnecte("mickybox33")

si test=Vrai alors

ouvre(2eme fenetre) //celle que tu a creer o debut !!

sinon
Info("Le mot de passe est incorrect, Veuillez le ressaisir ou appeller votre Administrateur !!!")
FIN
FIN

//et voila j espere que ca t ora aider ds ton projet ....

// a oui une chose n oulier po lorsque vous rentrer ensuite votre login et mot de passe ne //metter que le nom et non po le nom@nom de domaine... dans le sais_pseudo..

//Sur ce TCHOU !! et bonne progra !
Posté le 17 février 2006 - 11:47
C'est bien ce que je pensais, TU NE PEUT PAS RECUPERER le mot de passe windows, tu ne fais que le vérifier aprés une RE-SAISIE !!!

Hors IBM à un programme Client Access, émulateur en autre pour les AS/400, et je ne sais pas comment ils font, mais ils utilisent le mot de passe windows (alors qu'il n'a été saisi qu'a l'ouverture de windows) pour authentifier le login sur la session AS/400 !!!