Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Connessione LDAP

    Ciao, un cliente ci ha chiesto di recuperare i profili dal loro Ldap, per fare questo ci ha fornito l'indirizzo IP, porta, BaseDn, SearchDn e SearchFilter (che sdarebbero i campi necessari per una ricerca in Java)

    Cercando sulla rete, ho trovato che per ottenere queste informazioni da Ldap l'unico modo è passare da Ado, ma non sono riuscito a connetermi, ricevendo continuamente errori.

    Io ho fatto così:
    Conn.Provider = "ADsDSOObject"
    Conn.Properties("User ID") = baseDN
    Conn.Properties("Password") = Password Fornita dall'utente
    Conn.Properties("ADSI Flag") = 34
    Conn.Open "Active Directory Provider", "", ""
    Set Comm.ActiveConnection = Conn
    Comm.CommandText = "<" & indirizzoServerLdap & ">;(SearchFilter)"
    Set Rs = Comm.Execute

    Dopo la Execute ritorna "2147217900 One or more errors occurred during processing of command"

    Grazie a chi riesce ad aiutarmi

  2. #2
    ma hai trovato che l'unico modo è passare da ADO perchè comunque sei vincolato al VB o in generale?
    Io in Java faccio molto semplicemente accesso ad un server ldap con questa classe:

    codice:
    package ldap;
    
    /**
     * 
    
    Title: </p>
     * 
    
    Description: </p>
     * 
    
    Copyright: Copyright (c) 2004</p>
     * 
    
    Company: </p>
     * @author unascribed
     * @version 1.0
     */
    
    import javax.naming.*;
    import javax.naming.directory.*;
    import java.util.*;
    
    public class ldapprova {
    
    
      public ldapprova() {
      }
    
      private static String connectToLDAP(String codiceCliente){
    
        String error = "0";
        String serverLDAP="ldap://127.0.0.1:389";  //prod ITG
    
        System.out.println("mi connetto al server ldap " + serverLDAP);
    
        Hashtable env = new Hashtable();
        env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL,serverLDAP);
        env.put(Context.SECURITY_AUTHENTICATION,"simple");
        env.put(Context.SECURITY_PRINCIPAL,"cn=Directory Manager");
        env.put(Context.SECURITY_CREDENTIALS,"itg");
    
    
        Attribute objClasses = new BasicAttribute("objectclass");
        objClasses.add("top");
        objClasses.add("person");
        objClasses.add("organizationalPerson");
        objClasses.add("inetorgperson");
        objClasses.add("siebel");
    
        Attribute credentials = new BasicAttribute("credentials", "username=USER password=PWD type=Server");
        Attribute cn = new BasicAttribute("cn", codiceClienteSieb);
        Attribute sn = new BasicAttribute("sn", codiceClienteSieb);
        Attribute userPassword = new BasicAttribute("userPassword", codiceClienteSieb);
        Attribute uid = new BasicAttribute("uid", codiceClienteSieb);
        Attribute givenName = new BasicAttribute("givenName", codiceClienteSieb);
        String dn ="";
        try{
          DirContext ctx = new InitialDirContext(env);
    
    
          Attributes attributi = new BasicAttributes();
          attributi.put(objClasses);
          attributi.put(cn);
          attributi.put(sn);
          attributi.put(uid);
          attributi.put(userPassword);
          attributi.put(givenName);
          attributi.put(credentials);
          dn = "uid=" +  codiceClienteSieb + ", ou=People, dc=itg.it";  //per ITG
    
    
    
          String[] attrs = new String[4];
          attrs[ 0 ] = "cn";
          attrs[ 1 ] = "sn";
          attrs[ 2 ] = "uid";
          attrs[ 3 ] = "userPassword";
    
          Attributes result = ctx.getAttributes(dn, attrs);
    
    
          if (result == null){
            System.out.print("Attributi non presenti per "+dn);
          }
          else{
            Attribute attr = result.get("cn");
            if (attr != null){
              System.out.println("cn:");
              for(NamingEnumeration vals = attr.getAll();
                  vals.hasMoreElements();
                  System.out.println("\t" + vals.nextElement())
                 );
            }
            attr = result.get("sn");
            if (attr != null){
              System.out.println("sn:");
              for(NamingEnumeration vals = attr.getAll();
                  vals.hasMoreElements();
                  System.out.println("\t" + vals.nextElement())
                  );
            }
            attr = result.get("uid");
            if (attr != null){
              System.out.println("uid:");
              for(NamingEnumeration vals = attr.getAll();
                  vals.hasMoreElements();
                  System.out.println("\t" + vals.nextElement())
                  );
            }
            attr = result.get("userPassword");
            if (attr != null){
              System.out.println("userPassword:");
              for(NamingEnumeration vals = attr.getAll();
                  vals.hasMoreElements();
                  System.out.println("\t" + vals.nextElement())
                  );
            }
          }
        }
        catch(NamingException ne){
                    ne.printStackTrace();
        }
        catch(Exception e){
          e.printStackTrace();
          error= "2";
        }
        return error;
    
      }
    
    
    
    
    
    
      public static void main(String args[]){
        connectToLDAP("914003626175");
      }
    
    }

  3. #3
    Sì, purtroppo sono vincolato a VB...
    In Java sarebbe incredibilmente più semplice

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.