Pagina 3 di 6 primaprima 1 2 3 4 5 ... ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 51
  1. #21
    No infatti hai ragione, a che serve sapere la password?
    Però almeno, estrapolare:
    - Nome e Cognome
    - E-mail

    Come si fà?
    grazie e buona giornata

  2. #22
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    fai un $link = ldap_search($connessione, $dn, 'uid=' . $nome_utente);
    poi fai un $risultati = ldap_get_entries($connessione,$link);

    poi nel $risultati avrai un array multidimensionale. Da questo array dovrai estrapolare gli attributi sn - cognome, givenName - nome, e mail - email (e se ti sevono altri, prendi in mano qualche tutorial su ldap)

    gli attributi li devi prendere in questo modo:
    se ad esempio la chiave givenName la trovi nel $risultati[$contatore_entry][$contatore_attributi]
    il suo valore lo troverai in $risultati[$contatore_entry]["attribute"][$contatore_attributi]

  3. #23
    ciao... :|
    allora tra tutti gli attributi non ho visto nessun givenName oppure e mail:
    ho fatto come mi hai detto:
    Codice PHP:
    $ds=ldap_connect($ldapconfig['host'],$ldapconfig['port']) or die ("Impossibile effettuare la connessione");
                        
    //echo $ldapconfig['basedn'];
                        
    $r = @ldap_search$ds$ldapconfig['basedn'], 'uid=' $PHP_AUTH_USER);
                        
                        if (
    $r
                        {
                            
    $result ldap_get_entries$ds$r);
                                
                            
    var_dump($result[0]['dn']);
                                
                            if (
    $result[0]) 
                            {
                                if (@
    ldap_bind$ds$result[0]['dn'], $PHP_AUTH_PW) ) 
                                {
                                    
    /*var_dump($result[0]);
                                    echo "

    ";
                                    var_dump($result[0]["e mail"][5]);*/
                                    
    return $result[0];
                                    exit;
                                }
                            }
                        } 
    cmq facendo in questo modo mi ha riestituito questo risultato:
    Codice PHP:
    var_dump($result[0]['dn']);

    string(39"uid=a.cassano,ou=Users,dc=azienda,dc=it" 
    scusami ancora :|

  4. #24
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Perche' fai il dump del $result[0]['dn'] ? Se fai un tentativo di leggere il manuale, scopri che result[0]['dn'] contiene solo il dn della prima entry.
    var_dump($result[0]) cosa ti restituisce?
    Io purtroppo non ho al momento un php con ldap sotto mano per controllare, e l'ultima volta ho lavorato con questo abbinamento 4 anni fa. Quindi non posso darti il codice esatto, posso solo sugertirti cosa e dove cercare..

  5. #25
    ho visto sul manuale e ci sono altri paramentri da inserire per la ricerca e sono:
    Codice PHP:
    $filter="(|(sn=$person*)(givenname=$person*))";
    $justthese = array("ou""sn""givenname""mail"); 
    praticamente inserendo questi parametri qui dovrebbe funzionare, invece no:
    Codice PHP:
    function ldap_authenticate() 
                {
                    global 
    $ldapconfig;
                    global 
    $PHP_AUTH_USER;
                    global 
    $PHP_AUTH_PW;
                    
                    
    $PHP_AUTH_USER $_POST['txtUserName'];
                    
                    
    $PHP_AUTH_PW $_POST['txtPassword'];
                                    
                    if (
    $PHP_AUTH_USER != "" && $PHP_AUTH_PW != ""
                    {
    $filter="(|(sn=$person*)(givenname=$person*))";
                        
    $justthese = array("ou""sn""givenname""mail");
                        
                        
    $ds=ldap_connect($ldapconfig['host'],$ldapconfig['port']) or die ("Impossibile effettuare la connessione");
                        
    $r = @ldap_search$ds$ldapconfig['basedn'], 'uid=' $PHP_AUTH_USER$filter$justthese);
                        
                        
    $info ldap_get_entries($ds$r);
                        
                        echo 
    $info["count"]." entries returned\n"
    facendo in questo modo mi da questo errore:
    Codice PHP:
    Warningldap_get_entries(): supplied argument is not a valid ldap result resource on line 71
    //e la riga 71 è questa
    $info ldap_get_entries($ds$r); 
    oddio che roba
    grazie ancora per la pazienza....

  6. #26
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Ma scusa, tu la variabile person non ce l'hai da nessuna parte, tu la devi recuperare in base all'uid..

    Ripeto la domanda di sopra: var_dump($result) cosa ti dava su quel codice? Senza filtri, senza nient'altro..

    cosi:
    Codice PHP:
    $ds=ldap_connect($ldapconfig['host'],$ldapconfig['port']) or die ("Impossibile effettuare la connessione");
                        
    $r = @ldap_search$ds$ldapconfig['basedn'], 'uid=' $PHP_AUTH_USER);
                        
                        if (
    $r)
                        {
                            
    $result ldap_get_entries$ds$r);
                                
                            
    var_dump($result); 
                         } 
    non ti da un array con tutti gli attributi dell'utente, da dove estrapolare quelli che ti servono?

  7. #27
    ciao bubi1, dopo mesi mi ritrovo a combattere con la stessa cosa....
    allora riprendendo il tuo ultimo post.
    Facendo il var_dump di result mi da un array con una marea di roba...che non sto qui a postare.
    Oppure dimmi per favore qual'è la parte che ti interessa..

    Vorrei chiederti anche, l'attributo che identifica la password è userPassword e fin qui ok.
    Ora, com'è che viene codificata?In md5 o in sha1?

    Perchè questo valore $_POST['password'] per essere confrontato con quello in LDAP lo dovrò sicuramente criptare giusto?

    Una cosa che non ho capito per niente, anche se sto cercando di documentarmi, ma il confronto con la username e password digitata come avviene?

    Perchè facendo in questo modo:
    Codice PHP:
    function ldap_authenticate() 
                {
                    global 
    $ldapconfig;
                    global 
    $PHP_AUTH_USER;
                    global 
    $PHP_AUTH_PW;
                    
                    
                    
    $PHP_AUTH_USER $_POST['uname'];
                                    
    $_SESSION['SessUserName'] = $PHP_AUTH_USER;
                    
                    
    $PHP_AUTH_PW $_POST['passw'];
                    
    $_SESSION['SessUserPass'] = $PHP_AUTH_PW;
    if (
    $PHP_AUTH_USER != "" && $PHP_AUTH_PW != ""
    {
    $ds=ldap_connect($ldapconfig['host'],$ldapconfig['port']) or die ("Impossibile effettuare la connessione");
    $r = @ldap_search$ds$ldapconfig['basedn'], 'uid=' $PHP_AUTH_USER);

    if (
    $r
    {
        
    $result ldap_get_entries$ds$r);
            
    //var_dump($result);exit;
        
    if ($result[0]) 
        {
            
    var_dump($result[0]['dn']);exit;                                
            if (@
    ldap_bind$ds$result[0]['dn'], $PHP_AUTH_PW) ) 
            {
                echo 
    "Dentro bind\n
    "
    ;
                
    var_dump($result);exit;
                            return 
    $result[0];
            }
            echo 
    "Fuori bind\n
    "
    ;
            
    var_dump($result[0]);exit;
        }
    }
    }
    return 
    NULL;
    }
    //end function

    if (($result ldap_authenticate()) == NULL
                {
                    switch(
    $status){
                        case 
    AUTH_NOT_LOGGED:
                        
    //include 'include/alert.php';
                        
    exit;
                        break;
                    }

    Facendo in questo modo, qualsiasi password che digito mi fa entrare, controllando soltanto la Username che digito tralasciando la password.
    Quindi:come faccio a confrontare anche la password?

    Dopo mesi, grazie ancora

  8. #28
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    ti da "Dentro bind" con qualsiasi password??

  9. #29
    No, adesso con la modifichetta che ho fatto, se digito una password sbagliata mi va nel ramo else "Non autenticato",e quindi...sembra funzionare...

    Però non mi spiego perchè, il valore di $result è sempre NULL, faccio cosi:
    Codice PHP:
    //ho modificato qualcosa
    if ($r
                        {
                            
    $result ldap_get_entries$ds$r );
                            
                            if (
    $result
                            {
    $ldapBind = @ldap_bind$ds$result[0]['dn'], $PHP_AUTH_PW);
                                
                                if (
    $ldapBind
                                {
                                    echo 
    "Autenticato\n
    "
    ;
    return 
    $result;
                                }
                                else{
                                    echo 
    "Non autenticato\n
    "
    ;
    return 
    NULL;            
                                }
                            }
                        }
                    }
                    
    //return NULL;
                
    }//end function


    if (($result ldap_authenticate()) == NULL
                {
                    
                    switch(
    $status){
                        case 
    AUTH_NOT_LOGGED:
                        include 
    'include/alert.php';
                        break;
                    }
                } 
    PErchè mi restituisce sempre NULL?
    grazie ancora

  10. #30
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    non ho capito una mina.

    In quale punto esatto del programma $result e' null e tu ti aspetti che non lo sia (ovviamente se hai inserito user/pass giusti)?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.