Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Active Directory Group

Îåêßíçóå áðü ôï ìÝëïò pan. Τελευταία δημοσίευση από το μέλος Aris στις 08-01-2007, 13:00. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-12-2006, 16:44 22571

    Active Directory Group

    Καλησπερα.

    Προσπαθω να φτιαξω μια function σε C# που οταν του δινω εναν χρηστη (username και οχι password),  η function να ψαχνει μεσα σε συγκεκριμενα groups (που θα τα δινω εγω σαν παραμετρους) και να μου βρισκει ο χρηστης σε ποια από αυτα group ανηκει.

    Διαβασα και μερικα threads στο asp.net, τα ετρεξα αλλα δυστυχως δεν εβγαλα ακρη. Μπορειτε να με βοηθησετε??

     

    Ευχαριστω

  •  20-12-2006, 23:24 22608 σε απάντηση της 22571

    Απ: Active Directory Group

    Λόγω χρόνου σου προτείνω να δοκιμάσεις και αυτό. Απ ότι κατάλαβα εχει αυτό που ζητάς. Αλλιώς πες το και ξαναδοκιμάζουμε να το φτιάξουμε...

    http://www.c-sharpcorner.com/UploadFile/ankithakur/Login_Using_Active_Directory04052006061801AM/Login_Using_Active_Directory.aspx


    View Παναγιώτης Χαραλάμπους's profile on LinkedIn
    Coding at Mediterranean Acoustics
  •  21-12-2006, 00:21 22611 σε απάντηση της 22571

    Απ: Active Directory Group

    Δεν χρειάζεται να φτιάξεις function, υπάρχει έτοιμος ο μηχανισμός. Ρίξε μια ματιά εδώ:

    http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/windowsauth.aspx

     


    Vir prudens non contra ventum mingit
  •  21-12-2006, 16:25 22659 σε απάντηση της 22611

    Απ: Active Directory Group

    Συγκεκριμενα θελω να μου τυπωνει όλα τα μελη του Χ group.

    Πρεπει να κανω λαθος τα filter και στο path.  To path μου ειναι αυτο : LDAP://spitiCompany/OU=Spiti Users,DC=Spiti,DC=localΜεσα στο Spiti Users υπαρχουν ενα σωρο χρηστες.

    Βαζοντας αυτο το φιλτρο (&(objectClass=user)(objectCategory=person)) μου φερνει ολους τους χρηστες σωστα !! Αναμεσα στους χρηστες που μου φερνει το συγκεκριμενο φιλτρο υπαρχουν και καποια groups τα οποια μου τα φερνει σωστα. Πχ. το ενα group λεγεται HR group.  Αυτο που ζηταω ειναι, πως θα προσπελασω το HR Group?  Τι φιλτρο και τι path πρεπει να δηλωσω ωστε οταν επαναλαβω την διαδικασια να μου φερει τους χρηστες του HR group (αυτοι που ειναι με κοκκινο στο παρακατω σχημα) ?

    Επισης και στο ιδιο level του Spiti Users exw to Spiti Groups. Κατω απο αυτο υπαρχουν ενα σωρο groups. Καθε sub-group περιεχει ενα σωρο χρηστες. Τι φιλτρο και τι path πρεπει να δηλωσω για να τους τυπωσω ? (θελω τους windows2003server user, windowsXP user, windows2000 user που βρισκονται μεσα στο Administrators Group)

     

    Σ Χ Η Μ Α :
    Για να καταλαβετε, το δεντρο εχει ως εξης:

    Spiti Users
    | |----------- user 1
    | |----------- user 2
    | |----------- user 3
    | |----------- user 4
    | |----------- user 5
    | |----------- HR GROUP
    |                    |----------------HR USER 1
    |                    |--------------- HR USER 2
    |                    |--------------- HR USER 3
    | |----------- user 6
    |
    Spiti Groups
    | |----------- IT Group
    | |----------- Unix Group
    | |----------- Administrators Group
    |                       |---------------------------- windows2003server user
    |                       |---------------------------- windowsXP user
    |                       |---------------------------- windows2000 user
    | |----------- Windows Group

     


     

  •  03-01-2007, 17:43 22992 σε απάντηση της 22611

    Απ: Active Directory Group

    string adsiPath = "string contains the ldap path";

    πχ. LDAP://CN=theusername,OU=Spiti Users,OU=HR GROUP,DC=domainname,DC=gr or com ανάλογα με το domain που έχεις δηλώσει

    DirectoryEntry entry = new DirectoryEntry(adsiPath);

    μετά μπορείς να κάνεις πολλά πράγματα με το entry

    Ελπίζω να βοήθησα


    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  03-01-2007, 18:00 22993 σε απάντηση της 22992

    Απ: Active Directory Group

    μάλλον δε πρόλαβα την τελευταία δημοσίευσή σου οπότε για δες και αυτό

    DirectoryEntry entry = new DirectoryEntry(adsiPath);

    entry.AuthenticationType=AuthenticationTypes.Secure;

    entry.Username="username :: a user with access to the resource";

    entry.Password ="password of the above user";

    string filter="your filter";

    DirectorySearcher ds = new DirectorySearcher(entry, filter);

    ds.SearchScope= SearchScope.Subtree;

    SearchResult ds = ds.FindAll();


    Βαγγέλης Ξανθάκης
    Independent Consultant
    www.aylos.com
  •  08-01-2007, 13:00 23212 σε απάντηση της 22571

    Απ: Active Directory Group

    Λιγο στα γρήγορα, αλλά θα πάρεις μιά ιδέα.

    using System;
    using
    System.Collections.Generic;
    using
    System.Text;
    using System.DirectoryServices;

    // *****************************************************
    // Add a reference to the - COM - Active DS Type Library
    // *****************************************************

    namespace UserGroups
    {
       
    class
    Program
       {
             
    static void Main(string
    [] args)
             {
    AGAIN:
                Console.Write(@"Enter user name (DOMAIN\username) or hit [RETURN] to exit: "
    );
                string nt4name = Console
    .ReadLine();
                if (nt4name == string.Empty) return;
    // the exit point
                string ldapName = string
    .Empty;

                try
                {
                      ActiveDs.
    NameTranslateClass translator = new ActiveDs.NameTranslateClass
    ();
                      // Define the source type as being NT4 style
                      int sourceType = (int)ActiveDs.ADS_NAME_TYPE_ENUM
    .ADS_NAME_TYPE_NT4;
                      // Define destination type as being LDAP style
                      int destType = (int)ActiveDs.ADS_NAME_TYPE_ENUM
    .ADS_NAME_TYPE_1779;
                      translator.Set(sourceType, nt4name);
                      ldapName = translator.Get(destType);
                      Console.WriteLine(string.Format("LDAP path is: {0}\n"
    , ldapName));

                      // Here, we have LDAP path
                      DirectoryEntry de = new DirectoryEntry("LDAP://" + ldapName);
    // we need to add the prefix
                      if (de.SchemaClassName.ToLower() != "user"
    )
                      {
                            Console.WriteLine("Not a user!\nPlease try again.\n"
    );
                            goto
    AGAIN;
                      }
                      object grps = de.Invoke("Groups"
    );
                      foreach (object o in (System.Collections.IEnumerable
    )grps)
                      {
                         DirectoryEntry deMember = new DirectoryEntry
    (o);
                         if (deMember.SchemaClassName.ToLower() == "group"
    )
                            Console.WriteLine(string.Format("\t{0}"
    , deMember.Path));
                      }
                }
                catch

                {
                   Console
    .WriteLine(
                      string.Format("Could not translate {0} to a valid LDAP entry.\nPlease try again.\n"
    , nt4name));
                   goto
    AGAIN;
                }
                goto AGAIN;
    // restart
             }
         }
    }

    Δεν θέλω σχόλια για την χρήση goto Big Smile

     


    Aris
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems