Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1551 | Anzahl registrierter User: 1841 | Besucher online: 75
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

ActiveDirectory - Benutzer einer Gruppe ermitteln


Autor: Christopher Wolf
Sprache: C#
Bewertung:
7.46 (3 votes)
Anzahl der Aufrufe: 10195
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit diesem Snippet können alle Benutzer ausgelesen werden, welche zu einer bestimmten Gruppe gehören. Jedoch bezieht sich diese "AD-Anfrage" nur auf die Domäne in der man selbst befindet.

Des weiteren sind noch folgende usings einzubinden:

using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;


Abgelegt unter: ActiveDirectory, Active Directory, User, Gruppe, AD, LDAP, Gruppen, Benutzer.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/// <summary>
///     Ermittelt alle Benutzer die einer Gruppe angehören.
/// </summary>
/// <param name="group">
///     Name der Gruppe für welche alle zugehörigen Mitglieder ermittelt werden sollen.
/// </param>
/// <returns>
///     eine Liste mit den Mitgliedernamen
/// </returns>
private List<string> GetMemberOfGroup(string group)
{
    List<string> members = 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 'group')
        searcher.Filter = string.Format(@"(&(objectClass=group)(cn={0}))", group);

        // Anfrage mit gesetzteen Filter ausführen und Ergebnisse durch iterieren
        foreach (SearchResult result in searcher.FindAll())
        {
            // Eigenschaft 'member' des AD-Knotenpunktes 'result' durch iterieren
            foreach (var member in result.Properties["member"])
            {
                // AD-Eintrag für Suchergebnis abrufen
                using (DirectoryEntry memberResult = new DirectoryEntry(string.Format("LDAP://{0}", member)))
                {
                    string username = null;

                    // wenn Fehler beim abrufen...
                    try
                    {
                        username = memberResult.Properties["sAMAccountName"].Value as string;
                    }
                    catch (Exception) //...dann von der Eigenschaft 'Path' die Erste CN nehmen
                    {
                        username = memberResult.Path.Substring(0, memberResult.Path.IndexOf(','))
                                                    .Replace("LDAP://CN=", string.Empty);
                    }

                    // wenn 'username' nicht 'null' dann zur Liste hinzufügen
                    if (username != null)
                        members.Add(username);
                }
            }
        }
    }

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


    return members;
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Keks1911 schrieb am:  23.07.2010 21:44:59

Die Exception sollte wohl "NotSupportedException" sein.


Diese Snippets könnten für Sie interessant sein:
[C#] ActiveDirectory - Gruppen eines Benutzers ermitteln
[VB.NET] Active Directory Klasse
[C#] Auf Mitgliedschaft einer Windows-Sicherheitsgruppe prüfen
[C#] Active Directory Gruppen Zugehörigkeit prüfen
[VB.NET] LDAP - Liefert eine Liste mit allen Gruppen zu einem User
[C#] LDAP - Liefert eine Liste mit allen Gruppen zu einem User
[C#] LDAP - Authentifizieren eines Benutzers in der Domäne
[VB.NET] LDAP - Authentifizieren eines Benutzers in der Domäne
[C#] Windows Username auslesen
[C#] Sicherheit von Verzeichnisssen und Dateien ändern
[C#] lokale User und Gruppen administrieren
[VB.NET] Autostart with windows Property
[C#] Owner/Ersteller eines Prozesses ermitteln
[C#] Aktuellen Benutzer ausgeben
[C#] Netzlaufwerke verbinden/trennen - (mit User u. Passwort)
[C#] Liefert eine Liste aller Domain-Controller in einer Domain
[C#] Liefert eine DataTable mit allen Attributen eines cn-Names.
[C#] Liefert ein Dictionary von Attributen von einem LDAP Object
[C#] Liefert ein Dictionary der letzten Anmeldung eines Users
[C#] Liefert ein Attribut Objekt eines LDAP Objects (cn)
[C#] Liefert ein Dictionary Object von LDAP Userattributen
[C#] Return DataTable with LDAP UserAttributs
[C#] LDAP - Enable Account
[C#] LDAP - Unlock Account
[C#] LDAP - Setzt das Passwort so, dass es nie Abläuft
[C#] LDAP - Ermittelt ob das Passwort abgelaufen ist.
[C#] LDAP - Ermittelt ob das Konto deaktiviert ist.
[C#] LDAP - Ermittelt ob das Passwort abgelaufen ist.
[VB.NET] Alle Controls einer Form Enablen/Disablen
[C#] Benutzereingaben blockieren [Übersetzung]
[C#] Prüfen ob aktueller Benutzer Administrator ist
[VB.NET] Effektive Benutzerrechte ermitteln

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.