Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Email Adresse aus dem Active Directory lesen (https://www.delphipraxis.net/106827-email-adresse-aus-dem-active-directory-lesen.html)

cherry 17. Jan 2008 11:53


Email Adresse aus dem Active Directory lesen
 
Hi Leuts

ich kann auf diese Weise Problemlos einen User aus dem AD lesen:
Delphi-Quellcode:
 
ADsGetObject('WinNT://' + domain + '/' + username, IADsUser, usr);
Nur leider steht mir dann die property EmailAddress NICHT zur Verfügung, laut MSDSN stimmt das auch...

Auf diese Weise kriege ich die Emailadresse:
Delphi-Quellcode:
ADsGetObject('LDAP://CN=Hans Meyer,OU=Bla,OU=bla,OU=Users,OU=Thun,DC=thun,DC=lan',IADsUser, usr);
Nur leider weiss ich 1. den CN nicht und 2. was noch viel schlimmer ist, ich möchte nicht den ganzen OU Pfad mitgeben müssen.
OK...

Wie kriege ich nun die Email Adresse eines Benutzers wenn ich nur folgende Informationen habe:

Domäne, Username.

???

Vielen Dank schon ma

sakura 17. Jan 2008 12:03

Re: Email Adresse aus dem Active Directory lesen
 
Das usr Objekt aus Deiner ersten Abfrage liefert Dir doch aber den vollständigen OU-Pfad zurück, oder? Mit diesem kannst Du dann nochmal die zweite Abfrage starten und dann die Email auslesen.

...:cat:...

cherry 17. Jan 2008 12:06

Re: Email Adresse aus dem Active Directory lesen
 
hi sakura...

daran habe ich auch schon gedacht (weiss jedoch nicht welche property des usr Objekts es ist), aber das kanns ja irgendwie auch nicht sein, dann braucht mein Programm doppelt so lange wie mit einer Abfrage. Es soll möglichst effizient von statten gehen, Zeit spielt eine Rolle...

sakura 17. Jan 2008 12:11

Re: Email Adresse aus dem Active Directory lesen
 
Der Haken, welchen Du hast, ist dass Du den OU Pfad benötigst, wie Du schon sagtest. Da dieser von User zu User unterschiedlich sein kann (muss), musst Du diesen heraus bekommen. Am Ende, egal welchen Weg Du wählst, musst Du über eine ADs-Abfrage. Somit hast Du immer mind. zwei Abfragen, da kommst Du nicht herum. Wenn Du die Daten für alle Nutzer ermitteln willst, dann gehe am besten gleich rekursiv durch die OU-Ebenen, das würde dann am schnellsten sein. Willst Du nur ein relativ kleines Subset ermitteln, dann musst Du den oben genannten Weg wählen - ob sinnvoll oder nicht ;-)

Lasse mich in meinen Codes stöbern, ob ich die Eigenschaft fix finde ;)

...:cat:...

cherry 17. Jan 2008 12:24

Re: Email Adresse aus dem Active Directory lesen
 
wenn du dir absolut sicher bist, dann muss ich dir das wohl abkaufen. ;-)
Also ich hab auf MSDN gesucht, die einzige Property die den OU Pfad liefern könnte scheint "Departement" zu sein hier die MSDN beschreibung:

Delphi-Quellcode:
The department, an organizational unit (OU), within the company to which the user belongs.
doch die ist wiederum nicht verfügbar für die "WinNT://" suche ...

Vieleicht habe ich was übersehen (hoffentlich), ich wär also froh wenn mit jmd die Property mitteilen könnte...

Danke an Sakura und alle die bei der Suche mithelfen ;-)

sakura 17. Jan 2008 12:26

Re: Email Adresse aus dem Active Directory lesen
 
Zitat:

Zitat von cherry
Danke an Sakura und alle die bei der Suche mithelfen ;-)

Dauert noch ein wenig, da ich gerade festgestellt habe, dass die entsprechenden Sourcen noch in einem Backup rumlungern, dass ich noch nicht zurück gespielt habe, da ich vor ein paar Wochen meinen PC neu aufgesetzt habe. Komme aber noch heute dazu :zwinker:

...:cat:...

cherry 17. Jan 2008 12:28

Re: Email Adresse aus dem Active Directory lesen
 
du bist mein Held! :cheers:

cherry 18. Jan 2008 12:10

Re: Email Adresse aus dem Active Directory lesen
 
und... hat nun jmt eine Idee wie man mit "WINNT://" den ADS Pfad des Objekts rausbekommt, damit ich dann mit "LDAP://" die Email Adresse rausbekomme?

cheers

Alter Mann 18. Jan 2008 12:21

Re: Email Adresse aus dem Active Directory lesen
 
Hi,

ein Abfrage mit LDAP und das Ergebnis steht.
Der Username ist vollkommen ausreichend, wenn Du innerhalb der Domäne bleibst.
Filter = "(&(objectCategory=user)(sAMAccountName='Username' ))".
InParameter = "distinguishedName"
InParemeter = "mail"

Siehe auch hier.

Gruß

cherry 17. Mär 2008 15:15

Re: Email Adresse aus dem Active Directory lesen
 
Ich habs immmer noch nicht hin... wie setze ich jetzt den Filter und wo?
lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:37 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz