Consolen-Anwendung für Gruppen-Zugehörigkeitsprüfung C#

  • C#

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von HenryV.

    Consolen-Anwendung für Gruppen-Zugehörigkeitsprüfung C#

    Hallo zusammen,
    habe vor kurzem mit C# angefangen.
    Ich soll eine Consolen Anwendung schreiben, die bei der Eingabe von den Name die Liste mit den Gruppen ausgibt in den man ist, oder eine Fehlermeldung rauswerfen wenn nicht der Fall ist.
    Ich habe 2 Gruppen die ich durchsuchen muss, in einer bin Angemeldet in einer anderen nicht.

    Versuch 1

    C#-Quellcode

    1. DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=yourcompany,dc=com");
    2. DirectorySearcher srch = new DirectorySearcher(rootEntry);
    3. srch.SearchScope = SearchScope.Subtree;
    4. srch.Filter = "(& (objectClass=user)(sAMAccountName=Alex)(memberOf=CN=yourgroup,OU=yourOU,DC=yourcompany,DC=com))";
    5. SearchResultCollection res = srch.FindAll();
    6. if (res == null res.Count <= 0) {
    7. Console.WriteLine("This user is *NOT* member of that group");
    8. }
    9. else {
    10. Console.WriteLine("This user is INDEED a member of that group");
    11. }


    Versuch 2

    C#-Quellcode

    1. DirectorySearcher ds = new DirectorySearcher();
    2. ds.PropertiesToLoad.Add("CentaViewerUsers","CentaViewerArchiveUsers");
    3. ds.PropertiesToLoad.Add("Alex"); // members of the group
    4. SearchScope = SearchScope.Subtree;
    5. Filter = "(& (objectClass=user)(sAMAccountName=Alex)(memberOf=CN=yourgroup,OU=yourOU,DC=yourcompany,DC = com))";
    6. SearchResultCollection res = FindAll();
    7. if (res == null res.Count <= 0) {
    8. Console.WriteLine("This user is *NOT* member of that group");
    9. Console.ReadLine();
    10. }
    11. else {
    12. Console.WriteLine("This user is INDEED a member of that group");
    13. Console.ReadLine();
    14. }


    Bei den beiden stehe ich auf dem schlauch.
    Wenn es eine Bessere Methode gibt diese Aufgabe zu Lösen würde ich mich frohen.


    Danke allen voraus.

    MfG Alex

    Verschoben. Code-Tags eingefügt. Code formatiert. ~Thunderbolt

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Thunderbolt“ ()

    Geht das nicht einfacher mit dem WindowsIdentity.Groups Property?

    C#-Quellcode

    1. static void Main(string[] args)
    2. {
    3. string UserName = "Administrator";
    4. string GroupName = "Jeder";
    5. //Benutzer holen
    6. System.Security.Principal.WindowsIdentity identity = new System.Security.Principal.WindowsIdentity(UserName);
    7. //alle Gruppen des Beutzers hohlen
    8. System.Security.Principal.IdentityReferenceCollection irc = identity.Groups.Translate(typeof(System.Security.Principal.NTAccount));
    9. //Gruppe in Gruppen suchen
    10. string Test = Convert.ToString(identity.Groups.Translate(typeof(System.Security.Principal.NTAccount)).Where(x => x.Value == GroupName).FirstOrDefault());
    11. //Auswerten des Resultats
    12. if (!string.IsNullOrEmpty(Test))
    13. {
    14. Console.WriteLine(string.Format("{0} is INDEED a member of that group called \"{1}\"", identity.Name.ToString(), GroupName));
    15. }
    16. else
    17. {
    18. Console.WriteLine(string.Format("{0} is *NOT* member of that group called \"{1}\"", identity.Name.ToString(), GroupName));
    19. }
    20. Console.ReadKey();
    21. }