Laden...

Active Directory Zugriff / Fragen

Erstellt von CrazyPlaya vor 17 Jahren Letzter Beitrag vor 16 Jahren 2.647 Views
C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren
Active Directory Zugriff / Fragen

Hallo an alle,

ich habe gerade das beispiel von aspheute.com über den Zugriff auf das Active Directory durchgearbeitet.

Nun habe ich im AD unter der OU Users eine neue Gruppe angelegt und dieser Gruppe User zugewiesen.

Wie kann ich denn jetzt die User auslesen, welche sich in dieser Gruppe befinden?


 DirectoryEntry entry = new DirectoryEntry("LDAP://lfv.local/CN=Users, DC=lfv, DC=local", "test", "test" );
 DirectoryEntry dcUsers = entry.Children.Find("CN=lfm");
 DirectorySearcher search = new DirectorySearcher(dcUsers);
 search.Filter = "(&(objectClass=user))";
 foreach (SearchResult result in search.FindAll())
 {
         GUIDs[i] = result.GetDirectoryEntry().Guid.ToString();
         i++;
 }

Bei dieser Lösung hat result stets NULL

D
496 Beiträge seit 2005
vor 17 Jahren
DirectoryEntry de = new DirectoryEntry("LDAP://domain/ou=Users...

"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

Also das Problem besteht nicht darin auf CN=Users zu kommen. Sondern darunter existiert meine Usergroup der mehrere Mitglieder zugeordnet werden.
Ich möchte nun herausfinden, welche User sich in meiner Gruppe befinden.

Ich habe bisher rausgefunden, da DirectoryEntry keine Member hat muss man das NativeObject in diesem Fall von dcUsers in ActiveDs.IADsUser casten.

Nur wie caste ich jetzt mit CSharp auf diesen Typ?
Ich habe bereits versucht mit Convert.ChangeType(dcUsers.NativeObject, ActiveDs.IADsUser) zu casten doch das funzt so nicht.

In VB.NET kann man es über CType casten. Bsp: CType(dcUsers.NativeObject, ActiveDs.IADSUser).

Wenn ich das Casting hinbekommen habe, habe ich aber immer noch keine Ahnung wie ich dann weiter vorgehen muss.

Hoffe auf Hilfe🙂

C
CrazyPlaya Themenstarter:in
149 Beiträge seit 2007
vor 17 Jahren

nach langem googeln, so lässt sich lösen

DirectoryEntry entry = new DirectoryEntry("LDAP://lfv.local/CN=Users, DC=lfv, DC=local", "test", "test" );
DirectoryEntry dcUsers = entry.Children.Find("CN=lfm");

object members = dcUsers .Invoke("Members", null);
foreach(object member in (IEnumerable)members)
{
    DirectoryEntry x = new DirectoryEntry(member);
    Console.WriteLine(x.Name);
}

//edit: c#-code-tags ergänzt!!

Y
16 Beiträge seit 2007
vor 16 Jahren

der namespace System.DirectoryServices stimmt bei mir nicht!

hängengeblieben 😁

Y
16 Beiträge seit 2007
vor 16 Jahren

geht jetzt!

hängengeblieben 😁