Laden...

Alle Gruppen eines Benutzers im LDAP abfragen

Erstellt von kleinerkutz vor 14 Jahren Letzter Beitrag vor 13 Jahren 2.123 Views
K
kleinerkutz Themenstarter:in
32 Beiträge seit 2008
vor 14 Jahren
Alle Gruppen eines Benutzers im LDAP abfragen

Hallo zusammen,

ich möchte gern alle Gruppen eines Benutzers im LDAP abfragen.
Wir haben hierzu 2 Anmeldeserver unter Linux.

Ich habe schon einige Snippets ausprobiert, allerdings liefern mir
alle Skripte nur eine Object mit dem Wert NULL zurück.


private List<String> GetGroupsOfMember(string username)
{
    List<string> groups = new List<string>();
    // Objekt für AD-Abfrage erzeugen
   
    using (DirectorySearcher searcher = new DirectorySearcher(new DirectoryEntry(string.Empty)))
    {
        // nach Kriterium filtern - hier nach Gruppe mit einem best. Namen (Inhalt von 'username')
        searcher.Filter = string.Concat(string.Format(@"(&(ObjectClass=user)(sAMAccountName={0}))", username));
   
        // Anfrage mit gesetzteen Filter ausführen und Ergebnisse durch iterieren
        //foreach(SearchResult result in searcher.FindAll())
        foreach (SearchResult result in searcher.FindAll())
        {
            // Eigenschaft 'MemberOf' des AD-Knotenpunktes 'result' durch iterieren
            foreach (var group in result.Properties["MemberOf"])
            {
                // cast von 'group' zum Datentyp 'string' sollte nicht möglich sein, wird 'groupResult' 'null'
                string groupResult = group as string;

                if (groupResult != null)
                {
                    // CN aus dem Pfad extrahieren und zur Liste hinzufügen
                    groups.Add(groupResult.Substring(3, groupResult.IndexOf(',') - 3));
                }
            }
        }
    }

    // sollte nichts ermittelt worden sein, "- kein Eintrag gefunden -" in Liste einfügen
    if (groups.Count < 1)
        groups.Add("- kein Eintrag gefunden -");


    return groups;
}

Habt Ihr eine Idee, warum das so ist ?

32 Beiträge seit 2010
vor 13 Jahren

Versuchs mal mit

searcher.PropertiesToLoad.Add("MemberOf");

Villeicht bringt das was 😉.

Warum machst du da unten eigentlich einen Substring, wenn ich fragen darf?

#define struct union[

K
kleinerkutz Themenstarter:in
32 Beiträge seit 2008
vor 13 Jahren
Domäne kann nicht gefunden werden

Auch die Zeile hilft nicht.

Ich habe allerdings eine neue Fehlermeldung erhalten.

Die angegebene Domäne ist nicht vorhanden oder es konnte keine Verbindung hergestellt werden.

Habt Ihr eine Idee ?
Ich frage doch den Benutzer aus der eigenen Domäne ab.
Liegt das am Linux-Anmeldeserver ?