Pergunta : Começ a sociedade de grupo de LDAP


Eu uso o código below para encontrar que um usuário é uma parte do grupo do admin. Eu tenho que autenticar dois tipos dos usuários um sou membro e negociante. Trabalha com domínio do membro e não trabalha com domínio do negociante e não retorna um valor.  Pode alguém ajudar neste código.


Há uma maneira de fazer isto na maneira alternativa de autenticar usuários encontrando um determinado grupo do 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:
corda pública GetGroups ()
        {
            Busca de DirectorySearcher = DirectorySearcher novo (_path);
            busca. Filtro = “(cn=” + _filterAttribute + ") “;
            search.PropertiesToLoad.Add (“memberOf”);
            groupNames de StringBuilder = StringBuilder novo ();

            tentativa
            {
                Resultado de SearchResult = search.FindOne ();
                propertyCount = resultado do int. Propriedades [“memberOf”]. Contagem;
                corda dn;
                equalsIndex do int, commaIndex;

                para (propertyCounter do int = 0; propertyCounter  < propertyCount="">
           

Resposta : Começ a sociedade de grupo de LDAP


Aprovação que de Ahh eu ver.

Assim você é auth do teste LDAP aqui:

            Entrada de DirectoryEntry = DirectoryEntry novo (_path, domainAndUsername, pwd);

E isso é muito bem, você estabelece a conexão autenticada. Mas por outro lado você tenta e constrói o pesquisador para grupos como este:

            Busca de DirectorySearcher = DirectorySearcher novo (_path);

Você deixou cair a conexão autenticada e agora você está tentando passar no _path, criando uma segunda conexão unauthenticated, em lugar de um DirectoryEntry autenticado.

Idealmente você armazenaria a “entrada” e usaria aquele.

por exemplo.

namespace FormsAuth
{
    classe pública LdapAuthentication
    {
        DirectoryEntry público _entry;

       

        bool público IsAuthenticated (domínio da corda, username da corda, pwd da corda)
        {
               
 
                //Update o trajeto novo ao usuário no diretório.
                _filterAttribute = resultado (da corda). Propriedades [“NC”] [0];
                _entry = result.GetDirectoryEntry ();
         }


Então se você é autenticado você pode puxar o atributo do memberOf do DirectoryEntry um pouco do que procurarando outra vez em GetGroups:

// I pensa… não testado
Amarrar [] o memberOf = _entry. Propriedades [“memberof”]

Chris
Outras soluções  
 
programming4us programming4us