AD: Nach bestimmtem Benutzer suchen

daschii

Mitglied
Hallo zusammen

Ich möchte, in meiner AD nach einem bestimmten Benutzer suchen.
Dies kann man doch sicher via dem search.Filter bewerkstelligen - Doch leider
weiss ich nicht wie.

Kann mir da jemand helfen?

Besten Dank und einen schönen Morgen,
daschii
 

Norbert Eder

Erfahrenes Mitglied
Code:
System.DirectoryServices.DirectoryEntry entry = 
   new System.DirectoryServices.DirectoryEntry("LDAP://Path");
System.DirectoryServices.DirectorySearcher mySearcher = new 
   System.DirectoryServices.DirectorySearcher(entry);
mySearcher.Filter = ("(anr= John)");
foreach(System.DirectoryServices.SearchResult result in 
   mySearcher.FindAll()) 
{
   Console.WriteLine( result.GetDirectoryEntry().Path );
}

http://www.codeproject.com/csharp/ADTester.asp
 

daschii

Mitglied
Hallo Norbert,

Besten Dank für deine Hilfe - Wirklich vorbildlich, wie schnell Du immer zur Stelle bist!

Ich hätte aber noch eine Frage:

Ich möchte, dass Anstatt "John" die Variable sql_alias dort steht.
Bsp:

Code:
while (myReader.Read())
{	

				
/Auslesen der PersonId und Speichern in String			
string sql_alias = myReader["PersonId"].ToString();
/*Nur TemporärMessageBox.Show(sql_alias);*/

				
System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry("LDAP://arptest,DC=intern");
System.DirectoryServices.DirectorySearcher mySearcher = new System.DirectoryServices.DirectorySearcher(entry);
mySearcher.Filter = ("(anr= John)");

foreach(System.DirectoryServices.SearchResult result in 
mySearcher.FindAll()) 
{
Console.WriteLine( result.GetDirectoryEntry().Path );
}

Also dass Anstelle von "John" sql_alias ist.
Kannst Du/jemand mir helfen? :)

Danke und Gruss,
daschii

Edit: Und wenn ich noch John Suche - Nach welchem Objekt Suche ich dann? Nach dem displayName?
Hervorragend wäre es nämlich, wenn ich nach dem userPrincipalName suchen könnte.....
 
Zuletzt bearbeitet:

Norbert Eder

Erfahrenes Mitglied
Das sind jetzt aber Grundlagen, die du dir unbedingt so schnell als möglich erarbeiten solltest!
Code:
mySearcher.Filter = ("(anr="+sql_alias+")");
 

daschii

Mitglied
Hallo Norbert,

Oops, stimmt - Hatte ja das gleiche Problem auch schon mit dem SQL-String.

Anbei noch eine letzte Frage:
Für mich wäre es Ideal, wenn ich Nach dem UserPrincipalName suchen könnte, Optional auch Emailadresse.

Kannst Du mir da nochmals helfen? :)
Besten Dank

Grüsse,
daschii
 
Zuletzt bearbeitet:

Norbert Eder

Erfahrenes Mitglied
Schau dir den Link an, den ich gepostet habe. Die Infos sollten reichen dass du an alles kommst was du brauchst. Gegebenenfalls musst du selber ein wenig suchen.
 

daschii

Mitglied
Hallo Norbert,

Tut mir wirklich furchtbar leid, aber ich finde keine Lösung.

Und unter dem von Dir angegebenen Link finde ich auch keinen Lösungsansatz.....
 

daschii

Mitglied
Sodala......Guten Morgen :)

Hab nun schon die ganze Zeit gesucht und bin zu dem Resultat gelangt, dass der Filter folgendermassen aussehen müsste:

mySearcher.Filter =("(mail = test@arp.com)");

Die Betonung liegt auf müsste!
Leider funktioniert es so auch nicht. Vielleicht bringt es etwas, wenn ich die Expection Ex Meldung poste:

{"An invalid dn syntax has been specified" }

Hoffe, jemand kann mir helfen.

Schöne Grüsse,
pascal
 

Norbert Eder

Erfahrenes Mitglied
UserPrincipal müsste der Canonical Name sein, wenns mich nicht ganz täuscht, ergo das Kürzel cn.
Aber da gibts eh super Infos im Netz, Stichwort LDAP, denn darauf baut das Active Directory auf.
 

daschii

Mitglied
Norbert Eder hat gesagt.:
UserPrincipal müsste der Canonical Name sein, wenns mich nicht ganz täuscht, ergo das Kürzel cn.
Aber da gibts eh super Infos im Netz, Stichwort LDAP, denn darauf baut das Active Directory auf.

Ist mir klar, und über die Theorie der AD weiss ich auch Bescheid.

Meine Frage stellt sich: Wie kann ich z.B. nach den UserPrincipal oder nach dem mail suchen?

Habs schon verschiedenst versucht, bekomme aber immer die Fehlermeldung:
"an invalid dn syntax has been specified".