Fråga : Få gruppmedlemskap från LDAP


Jag använder det nedanfört kodifierar för att finna ut en användare är en del av admin-gruppen. Jag måste att legitimera två typer av användare en är medlemmen och återförsäljaren. Den fungerar med medlemområde och fungerar inte med återförsäljareområde och går inte en värdera tillbaka.  Kan någon hjälpa i detta kodifierar.


Finns det a långt som långt gör detta i alternativ för att legitimera användare, genom att finna en bestämd grupp för 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:
allmänhet stränger GetGroups ()
        {
            DirectorySearcher sökande = nya DirectorySearcher (_path);
            sökande. Filtrera = ”(cn=” + _filterAttribute +”) ”;
            search.PropertiesToLoad.Add (”memberOf”);
            StringBuilder groupNames = nya StringBuilder ();

            försök
            {
                SearchResult resultat = search.FindOne ();
                int-propertyCount = resultat. Rekvisita [”memberOf”]. Räkning;
                stränga dn;
                int-equalsIndex, commaIndex;

                för (int-propertyCounter = 0; propertyCounter  < propertyCount="">
           

Svar : Få gruppmedlemskap från LDAP


Ahh godkännande som jag ser.

Så du testar LDAP-auth här:

            DirectoryEntry tillträde = nya DirectoryEntry (_path, domainAndUsername, pwd);

Och det är fin, dig upprättar den legitimerade anslutningen. Men därefter du försök och bygger searcheren för gruppnågot liknande detta:

            DirectorySearcher sökande = nya DirectorySearcher (_path);

Du har tappat den legitimerade anslutningen, och nu du är pröva att passera i _path som skapar en unauthenticated anslutning för understödja, i stället en legitimerade DirectoryEntry.

Idealt du skulle lagret ”tillträde” och bruk det.

e.g.

namespace FormsAuth
{
    allmänhet klassificerar LdapAuthentication
    {
        _entry offentliga DirectoryEntry;

       

        offentlig bool IsAuthenticated (stränga området, stränger username, stränger pwd),
        {
               
 
                //Update den nya banan till användaren i arkivet.
                _filterAttribute = (stränga), resultat. Rekvisita [”cn”] [0];
                _entry = result.GetDirectoryEntry ();
         }


, om därefter du legitimeras, du kan handtag memberOfattribut från DirectoryEntryen ganska än söka igen i GetGroups:

Inte-testad // I funderare…
Stränga [] memberOf = _entry. Rekvisita [”memberof”]

Chris
Andra lösningar  
 
programming4us programming4us