none
Active Directory Consulta organização RRS feed

  • Pergunta

  • Pessoal,

    Existe uma consulta no DirectoruSearcher para ver se existe determinada informação.

    Bom a questão é a seguinte:

    Quando passo dessa forma:

    DirectorySearcher search = new DirectorySearcher("LDAP://" + Local, "DC=local");
    
    search.Filter = "(CN=Negociação Estratégica e Gestão de Conflitos (G))"
    
    //OU
    
    search.Filter = "(OU=Alunos Negociação Estratégica e Gestão de Conflitos)"
    
    SearchResult result = search.FindOne();

    Ele me retorna valores perfeitamente.

    Porém quando passo dessa outra forma:

    DirectorySearcher search = new DirectorySearcher("LDAP://" + Local, "DC=local");
    
    search.Filter = "(CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos)"
    
    SearchResult result = search.FindOne();

    Não me retorna nenhum valor, mas se for analisar individualmente os cassos separados como primeiro exemplo, existem sim no AD.

    Uso esse cara para verificar se existe ou não no AD, porém efetuei o teste na raça conforme exemplos acima mas sem sucesso:

    return DirectoryEntry.Exists(path);

    Alguam ideia do que fazer ou se existe alguma coisa errada?


    Atenciosamente, Samuel dos Anjos

    quinta-feira, 10 de janeiro de 2013 18:34

Respostas

  • Pessoal,

    Problema resolvido. A área de redes havia mudado os nomes das organizações pela central do AD e não avisaram ninguém e quando tentava passar:

    LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local

    Não existia, sendo que o corrego seguindo a hierarquia seria:

    LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local

    Obrigado a todos.


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 11 de janeiro de 2013 18:21

Todas as Respostas

  • Segue um código mais limpo com dois exemplos:

    //Não Funciona
    DirectoryEntry recurso = new DirectoryEntry("LDAP://Teste.local/DC=Teste,DC=local");
                DirectorySearcher busca = new DirectorySearcher(recurso, "(CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos)");
                SearchResult resultado = busca.FindOne();
    
    
    //Funciona
    DirectoryEntry recurso = new DirectoryEntry("LDAP://Teste.local/DC=Teste,DC=local");
                DirectorySearcher busca = new DirectorySearcher(recurso, "(CN=Negociação Estratégica e Gestão de Conflitos (G))");
                SearchResult resultado = busca.FindOne();
    
    
    //Não Funciona
    //bool bol = DirectoryEntry.Exists("LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local");
                
    
    //Funciona
    bool bol = DirectoryEntry.Exists(LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local);
    

    O que pode ser os que não funcionam galera?

    quinta-feira, 10 de janeiro de 2013 21:53
  • Segue um código mais limpo com dois exemplos:

    //Não Funciona
    DirectoryEntry recurso = new DirectoryEntry("LDAP://Teste.local/DC=Teste,DC=local");
                DirectorySearcher busca = new DirectorySearcher(recurso, "(CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos)");
                SearchResult resultado = busca.FindOne();
    
    
    //Funciona
    DirectoryEntry recurso = new DirectoryEntry("LDAP://Teste.local/DC=Teste,DC=local");
                DirectorySearcher busca = new DirectorySearcher(recurso, "(CN=Negociação Estratégica e Gestão de Conflitos (G))");
                SearchResult resultado = busca.FindOne();
    
    
    //Não Funciona
    //bool bol = DirectoryEntry.Exists("LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local");
                
    
    //Funciona
    bool bol = DirectoryEntry.Exists(LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local);
    

    O que pode ser os que não funcionam galera?

    DC é o dominio

    CD serve pra usuário, grupo e computador

    OU é a unidade organizacional que é criado no AD

    Pode ser que não exista aquela unidade organizacional naquele AD ou retornou mais de 1 linha pois você chamou com o FindONe


    Leonardo Lourenço Silva

    sexta-feira, 11 de janeiro de 2013 00:32
  • Cara,

    Não funciona mesmo, se eu tertas individualmente as unidades organizacionais ou com uma outra string diferente que possuo em varios casos a consulta no AD me retorna valor. Exemplo:

    bool bol = DirectoryEntry.Exists("LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),DC=insper,DC=local");
    
    //OU outra string
    
    bool bol = DirectoryEntry.Exists("LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=insper,DC=local");

    Somente esse caso que o AD não está trazendo nada:

    bool bol = DirectoryEntry.Exists("LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=insper,DC=local");
    Mas existem essas unidades organizacionais sim no AD.


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 11 de janeiro de 2013 13:23
  • Ah, completando com o outro questionamento da linha, ele trás null mesmo e se for uma coleção fica com count 0.


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 11 de janeiro de 2013 13:24
  • Pessoal,

    Problema resolvido. A área de redes havia mudado os nomes das organizações pela central do AD e não avisaram ninguém e quando tentava passar:

    LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local

    Não existia, sendo que o corrego seguindo a hierarquia seria:

    LDAP://CN=Negociação Estratégica e Gestão de Conflitos (G),OU=Alunos Negociação Estratégica e Gestão de Conflitos,OU=Alunos,DC=Teste,DC=local

    Obrigado a todos.


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 11 de janeiro de 2013 18:21