ERLEDIGT
NEIN
NEIN
ANTWORTEN
15
15
ZUGRIFFE
15133
15133
EMPFEHLEN
-
Hallo zusammen,
Ich bin neu hier und habe ein Problem mit C# und Active Directory auslesen. Hoffe, Ihr könnt mir helfen
Ich möchte gerne alle User die sich in einer Active Directory befinden auslesen. Dies bewerkstelligt der folgende Code:
System.DirectoryServices.DirectoryEntry entry = new System.DirectoryServices.DirectoryEntry("LDAP://DC=arptest,DC=intern");
System.DirectoryServices.DirectorySearcher mySearcher = new
System.DirectoryServices.DirectorySearcher(entry);
mySearcher.Filter = ("(&(objectCategory=Person)(objectClass=user))");
foreach(System.DirectoryServices.SearchResult result in
mySearcher.FindAll())
{
label1.Text = label1.Text + Environment.NewLine + result.GetDirectoryEntry().Path;
}
Jetzt möchte ich aber dass es zusätzlich zum Username auch bestimmte Eigenschaften wie z.B. Vorname,Nachname usw. ausliest. Ich hab gelesen, dass das mit der
InvokeMember Methode funktioniert, konnte aber nirgends ein Anwendungsbeispiel finden und weiss nicht, wie ich die Methode einbauen muss.
Kann mir hier jemand weiterhelfen?
So dass ich am Schluss eine Auflistung der User im AD und div. ADSI-Eigenschaften wie z.B. Vorname/Nachname habe.
Ist es desweiteren möglich nur User auszulesen, die eine bestimmte Eigenschaft vorweisen? Zum Beispiel soll es mir nur diejenigen User auflisten, die als Nachname „Müller“ haben.
Vielen Dank für Eure Hilfe!
Viele Grüsse,
Bitkiller
-
Mit welchem Framework arbeitest du? .NET 1.x oder 2.0 ?
Unter 2.0 hast nämlich ein paar Erweiterungen im DirectoryServices-Namespace, der den Umgang mit dem AD zusätzlich erleichtern.
Aber sag mal welches Framework, dann weiß ich in welche Richtung meine Antwort gehen soll
-
Hallo Norbet,
erstmals vielen Dank für deine schnelle Antwort!
Ich arbeite mit dem .net Framework 1.1 - Ich hoffe meine "Vorstellungen" sind mit dem 1.1er auch realisierbar
Grüsse,
bitkiller
-
Vielleicht hilft dir der nachfolgende Artikel ein wenig weiter:
http://www.c-sharpcorner.com/Code/20...dMicrosoft.asp
Wenn nicht, dann gleich die ganze Artikelliste unter:
http://www.c-sharpcorner.com/DirectoryServices.asp
Da ist auf jeden Fall was für dich dabei.
-
Hallo Norbert,
Vielen Dank für die Artikel, bin jetzt einen Schritt weitergekommen und kann die Eigenschaften der User auch auslesen - Zumindest in der Theorie.
In der Praxis kommt beim Debuggen folgende Fehlermeldung:
*****
Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in WindowsApplication2.exe aufgetreten.
Zusätzliche Informationen: Object reference not set to an instance of an object.
****
Woran liegt das?
Anbei noch mein "modifizierter" Source Code:
***
foreach(System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll())
{
System.DirectoryServices.DirectoryEntry de=resEnt.GetDirectoryEntry();
label1.Text = label1.Text + Environment.NewLine + resEnt.GetDirectoryEntry().Path + Environment.NewLine + (de.Properties["GivenName"].Value.ToString());
}
***
Vielen Dank im vorraus schon für deine Hilfe
-
Schwer zu sagen, da ich ja nicht weiß wo genau der Fehler auftritt. Debug einfach mal durch, und schau dir die einzelnen Objekte an, dann siehst du welches Objekt nicht gesetzt wurde.
Entweder ist es das Objekt mySearcher oder das Objekt de - schätze ich jetzt mal. Läßt sich aber - wie gesagt - mit dem Debugger sehr einfach finden.
-
Ähm - Ich versteh nur Bahnhof....
Woran erkenne ich im Debugger welches Objekt das "nicht gesetzte" ist?
Vielen Dank
-
Ähm, mit der Maus drüber fahren, die Local Variablen angucken, mach dich mit dem Visual Studio vertraut. Kennst du das Visual Studio tust du dich auch mit allen Aufgaben viel leichter.
-
Das mit dem Maus drüber fahren ist mir klar, aber nicht wie ich herausfinden soll, welche Variable nicht gesetzt ist, sprich wie ich das beheben muss.
Folgender Abschnitt ist gelb markiert:
string lastname = de.Properties["GivenName"].Value.ToString();
Davon ist der String lastname = hans,
de = {System.DirectoryServices.DirectoryEntry}
de.Properties = {System.DirectoryServices.PropertyCollection}
Value = objectPropertyValueCollection
Welches Objekt ist nicht gesetzt?
Danke für deine Geduld
-
Dir fehlen ja alle Grundlagen. Ich hab hier einen Link für dich, ist zwar für VB.NET, aber das ist kein Problem weils unter C# gleich funktioniert.
http://www.galileocomputing.de/openb...msvb030002.htm
-
Hallo Norbert,
Vielen Dank für deine Hilfe und auch den Galileocomputing Link - Auch wenn mir die dort beschriebene Theorie bereits bekannt war
Ich hab den Fehler jetzt durch einen TRY/CATCH gelöst. Nun funktioniert alles wie gewünscht.
Möchte Dir nochmals für deine Geduld und Hilfe Danken!
Grüsse,
bitkiller
-
26.08.05 09:12 #12
Hallöchen,
der Beitrag ist zwar schon ein paar Tage her, aber ich wollte mal erklären warum der Fehler auftritt.
Wenn du mal bei einem Benutzer keinen "GivenName" hast, dann kommt diese Exception. Eventuell kannst du auch gegen NULL abfragen.
Also so in der Art
Code :1 2 3 4 5 6
string givenName = de.Properties["GivenName"].Value.ToString()); if(givenName != null) { label1.Text = "Nachname: " + givenName; }
ciao Anke
-
Hallo hurricane
Oh, vielen Dank - Jetzt weiss ich auch, woran das Problem gelegen hat
BTW: Weisst Du, wie ich die Initialen eines AD-Users auslesen kann?
-
26.08.05 10:51 #14
Zu den Initialien habe ich jetzt auf die schenlle nichts gefunden, aber mir hat folgende Seite super geholfen:
http://www.faq-o-matic.net/content/view/60]http://www.faq-o-matic.net/content/view/60
Dort stehen alle zur Verfügung stehende LDAP-Namen
-
21.09.06 13:50 #15
- Registriert seit
- Aug 2006
- Beiträge
- 204
Hallo Leute,
ich brauche genau die gleichen Informationen wie daschii jedoch benutze ich das Framework 2.0 und scheint die Sache schon wieder anders auszusehen. Kann mir da einer Infos zu geben?
Ähnliche Themen
-
Active Directory
Von Sephi2k06 im Forum Microsoft WindowsAntworten: 2Letzter Beitrag: 06.10.06, 10:46 -
Zugriff auf Active Directory
Von Benzol im Forum .NET ArchivAntworten: 1Letzter Beitrag: 18.10.04, 14:01 -
Active Directory auslesen
Von michaelwengert im Forum VisualStudio & MFCAntworten: 1Letzter Beitrag: 15.07.04, 12:10 -
Active directory
Von stormystormy im Forum .NET ArchivAntworten: 0Letzter Beitrag: 26.02.04, 13:46 -
Asp.net Active Directory
Von stormystormy im Forum .NET ArchivAntworten: 4Letzter Beitrag: 25.12.03, 18:37





Zitieren
Login





