Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 26-mar-2008, 11:54   #1 (permalink)
SidP no se puede cailificar en este momento
 
Avatar de SidP
 
Fecha de Ingreso: febrero-2006
Ubicación: /etc/php.ini
Mensajes: 121
comprobar dn en ldap

hola comunidad
mi problema es el siguiente...estoy autentificando contra un server LDap....
Código:
	public function connect ($userDn=null, $userPwd=null) {
		if (is_resource($this->_ds)) {
			ldap_unbind($this->_ds);
		}
		if ($userDn===null) { 
			$userDn=$this->_ldapBindDn;
			$userPwd=$this->_ldapBindPass;
		}
		$result=false;
		$this->_ds=ldap_connect($this->_ldapServer);
		if ($this->_ds) {
			$result=ldap_bind($this->_ds, $userDn, $userPwd);
		}
		return $result;
	}

	public function getUserDn ($username) {
		if (!is_resource($this->_ds)) $this->connect();
		$result=null;
		$filter=str_replace('%u', $username, $this->_userFilter);
		$sr=ldap_search ($this->_ds, $this->_userBaseDn, $filter, array('dn'));
		$info=ldap_get_entries($this->_ds, $sr);
		if ($info['count']==1) {
			$result=$info[0]['dn'];
		} else {			
			$result=null;
		}
	
		return $result;
	}
hasta ahi todo perfecto...me logueo sin problemas...mi dnBase es
Código:
"ou=Personas,dc=example,dc=com
el problema es que es global...es decir coje usuarios de dos ou
Código:
GroupBaseDn="ou=Profesores,ou=Personas,dc=example,dc=com
y de 
GroupBaseDn="ou=Estudiantes,ou=Personas,dc=example,dc=com
pero necesito diferenciar cuando es un estudiante o un profesor....alguna idea de como podria hacerlo..he estado probando con ldap_search pero nada todavia...alguna sugerencia???
SidP está desconectado   Responder Citando
Antiguo 26-mar-2008, 12:04   #2 (permalink)
Moderador
GatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy prontoGatorV llegará a ser famoso muy pronto
 
Avatar de GatorV
 
Fecha de Ingreso: mayo-2006
Ubicación: Queretaro, Mexico
Mensajes: 11.280
Re: comprobar dn en ldap

Estuve viendo un poco la documentación de ldap_search, y necesitarías yo creo pasarle en tu array, el 'dn' y el 'ou' para que también te regrese el ou y puedas diferenciar si es Profesor o Estudiante.

Saludos.
__________________
Blog Web
GatorV está desconectado   Responder Citando
Antiguo 26-mar-2008, 13:08   #3 (permalink)
SidP no se puede cailificar en este momento
 
Avatar de SidP
 
Fecha de Ingreso: febrero-2006
Ubicación: /etc/php.ini
Mensajes: 121
Re: comprobar dn en ldap

gracias por responder GatorV problema resuelto
lo que hice fue definir otro DNBase mas con otro filtro tambien
Código:
ProfBaseDn="ou=Profesores,ou=Personas,dc=example,dc=com"
ProfFilter="(&(memberUid=%u)(objectClass=posixGroup))" ProfNameAttribute="uid"
y chequear despues que el usuario se logueara contra ese DNBase con la funcion
Código:
public function isProfessor($userDN){
      $search = ldap_search($this->_ds,$this->_profBaseDn,"uid=".$userDN."");
      $enID = ldap_first_entry($this->_ds,$search);
      if($enID)
             return true;
      else 
             return false;
         }
asi me funciona...
Gracias
SidP está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:32.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93