C# - Finden Sie alle E-Mail-Adressen für einen Active Directory-Benutzer
Ich versuche, alle E-Mail-Adressen zu einem bestimmten AD-user.
Für die Benutzer habe ich die Domäne und den Benutzernamen (ex. DOMÄNE\Benutzername) und ich die AD ist die Speicherung der E-Mail-Adressen:
- Die E-mail-Attribut.
- In
proxyAddresses
Attribute.
So weit, ich weiß nicht, was C# - API zum herstellen der Verbindung auf die ANZEIGE, und wie Sie richtig zu filtern, indem die Benutzer zum abrufen aller E-Mail-Adressen. Ich bin mit .NET 3.5.
Danke.
InformationsquelleAutor pgb | 2009-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist eine mögliche Lösung, die mit verschiedenen Klassen in der
System.DirectoryServices
namespace.+1 Das ist besser als die akzeptierte Antwort, weil a) Sie nicht haben, verlassen diese Website, um Hilfe zu bekommen und b) es nicht alle kryptischen LDAP-Abfrage Zeug.
Ich möchte respektvoll widersprechen - während dies fügt einige Klarheit, ist es nicht eine wichtige Unterscheidung, die in dieser Dokumentation nicht zeigen: "diese [proxyAddress] - Eigenschaft listet alle E-Mail-Adresse-Arten, wie beispielsweise SMTP, x.400, etc. Also müssen wir ändern unseren code zu überprüfen, für die SMTP-Typ". Außerdem, und vielleicht ist Microsoft Schuld hier für ungültig Dokumentation, @Donut - ich bin immer noch am Rätseln, warum hast du die folgenden: emailAddresses.Add(user.EmailAddress), wenn der Microsoft docs definieren dieses Attribut als "die Liste der E-Mail-Adressen für einen Kontakt" (mehrere Adressen?)
In meinem Fall war ich einfach auf der Suche nach einzelnen E-Mail-Adresse mit "username". Ich war in der Lage, genau das zu bekommen, was ich wollte mithilfe userEmail = user.EmailAddress;
InformationsquelleAutor Donut
Haben Sie schaute auf die DirectoryEntry-Klasse.
Sie können ziehen Sie Eigenschaften aus es gegeben, haben Sie die LDAP-string-set-up. Das Anwesen für E-mail "E-mail" ironisch, nicht ?
InformationsquelleAutor JonH