Questione : Ottenendo composizione di gruppo da LDAP


Uso il codice sotto per scoprire che un utente è una parte del gruppo di admin. Devo autenticare due tipi di utenti uno sono membro e commerciante. Funziona con il dominio del membro e non funziona con il dominio del commerciante e non restituisce un valore.  Può qualcuno aiutare in questo codice.


È ci un senso fare questo nel senso alternativo autenticare gli utenti trovando un determinato gruppo del memberof.
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:
stringa pubblica GetGroups ()
        {
            Ricerca di DirectorySearcher = nuovo DirectorySearcher (_path);
            ricerca. Filtro = “(cn=„ + _filterAttribute + ") “;
            search.PropertiesToLoad.Add (“memberOf„);
            groupNames di StringBuilder = nuovo StringBuilder ();

            prova
            {
                Risultato di SearchResult = search.FindOne ();
                propertyCount = risultato di int. Proprietà [“memberOf„]. Conteggio;
                stringa dn;
                equalsIndex di int, commaIndex;

                per (propertyCounter di int = 0; propertyCounter  < propertyCount="">
           

Risposta : Ottenendo composizione di gruppo da LDAP


Approvazione che di Ahh vedo.

Così siete auth di prova LDAP qui:

            Entrata di DirectoryEntry = nuovo DirectoryEntry (_path, domainAndUsername, pwd);

E quello è benissimo, voi stabilisce il collegamento autenticato. Ma d'altra parte provate e costruite il ricercatore per i gruppi come questo:

            Ricerca di DirectorySearcher = nuovo DirectorySearcher (_path);

Avete caduto il collegamento autenticato ed ora state provando a passare nel _path, generante un secondo collegamento unauthenticated, invece un DirectoryEntry autenticato.

Immagazzinereste Nel migliore dei casi “l'entrata„ ed usereste quello.

per esempio.

namespace FormsAuth
{
    codice categoria pubblico LdapAuthentication
    {
        DirectoryEntry pubblico _entry;

       

        bool pubblico IsAuthenticated (dominio della stringa, username della stringa, pwd della stringa)
        {
               
 
                //Update il nuovo percorso all'utente nell'indice.
                _filterAttribute = risultato (della stringa). Proprietà [“cn„] [0];
                _entry = result.GetDirectoryEntry ();
         }


Allora se siete autenticato potete tirare l'attributo del memberOf dal DirectoryEntry piuttosto che cercando ancora in GetGroups:

// I pensa… non provato
Mettere insieme [] il memberOf = _entry. Proprietà [“memberof„]

Chris
Altre soluzioni  
 
programming4us programming4us