InicioArticulos y noticiasBases de datosProgramaciónForosInternetServiciosContratacionEmail
SQL
  Tutorial SQL
SQL Server
  Tutorial de Transact-SQL
ORACLE
  Tutorial PL/SQL
.NET
  Introducción a.NET
  Conceptos generales .NET
  Tutorial C#
  LinQ
  WCF
Reina Roja
  Humor
  Bibliografia
  Acerca de ...

Afiliados
La Web del programador
MundoProgramacion

conexión a LDAP
tema iniciado pormari90 en ASP.NET
Mensaje recibido el [05/02/2007 06:57:29]


Hola !!

Estoy construyendo una aplicacion web con visual studio 2005 y C#. Necesito autenticar algunos de mis usuarios con LDAP. Primeramente estoy intentando conectarme a LDAP pero me da el siguiente error:

"El servidor ha devuelto una referencia". DirectoryServicesCOMException errorcode=-2147016661

string adPath = LDAP://DC=sc,DC=ehu,DC=es;

//Usernamees el nombre de usuarioy pwd la contraseña de uno de los usuarios del LDAP 

DirectoryEntry entry = new DirectoryEntry(adPath,Username,pwd,AuthenticationTypes.Secure);

try

{

//AKI cuando hago entry.lo que sea ya me da el error que os comento

Object obj = entry.NativeObject;

DirectorySearcher search = new DirectorySearcher(entry);

search.Filter = "(SAMAccountName=" + username + ")";

...

No sé qué hacer porque llevo ya un tiempo con la conexión a LDAP pero me da este error y no tenga ni idea de lo que es.

¿Alguien tiene alguna idea?

Muchas gracias.

Mari.


 RE: conexión a LDAP por aldeamedia [05/02/2007 08:35:17]
 RE: conexión a LDAP por mari90 [05/02/2007 11:46:57]
 RE: conexión a LDAP por aldeamedia [05/02/2007 01:59:49]
 RE: conexión a LDAP por mari90 [05/02/2007 04:1:36]
 RE: conexión a LDAP por aldeamedia [05/02/2007 04:58:58]
 RE: conexión a LDAP por aldeamedia [05/02/2007 05:26:31]
 RE: conexión a LDAP por mari90 [06/02/2007 05:30:16]
 RE: conexión a LDAP por mari90 [06/02/2007 05:34:18]
 RE: conexión a LDAP por aldeamedia [06/02/2007 10:43:56]
 RE: conexión a LDAP por mari90 [08/02/2007 05:3:47]
 RE: conexión a LDAP por aldeamedia [08/02/2007 05:22:19]
 RE: conexión a LDAP por mari90 [08/02/2007 09:51:01]
 como conecto java-oracle por torrecita [18/02/2007 07:33:53]
 RE: conexión a LDAP por aldeamedia [19/02/2007 01:39:31]
 RE: conexión a LDAP por aldeamedia [19/02/2007 03:54:28]
 Conectar Java con ORACLE por Devjoker [19/02/2007 04:21:14]
 RE: conexión a LDAP por Devjoker [19/02/2007 05:9:07]
 RE: conexión a LDAP por aldeamedia [19/02/2007 04:3:33]
 RE: conexión a LDAP por jaslinfernando [11/10/2008 12:41:58]
 RE: conexión a LDAP por jaslinfernando [11/10/2008 12:43:18]
 RE: conexión a LDAP por jaslinfernando [11/10/2008 12:53:26]

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [05/02/2007 08:35:17]
¿Que es exactamente lo que quieres hacer? no puedes conectar a directamente LDAP así como así ten en cuenta que es la base de datos de usuarios y contraseñas si estás trabajando con ASP.net necesitarías como minimo un usuario con permisos para acceder a él y el usuario ASPNET evidentemente no te sirve.
 [1] 

 
RE: conexión a LDAP por mari90
Respuesta recibida el [05/02/2007 11:46:57]

Hola de nuevo!!

Algunos de los usuarios que van a acceder a mi aplicación web son profesores. Necesito autenticar esos profesores a través de LDAP(del LDAP de la universidad a la que pertenecen). Es decir, cuando un profesor intente acceder a mi aplicación e introduzca su nombre de usuario y contraseña, lo que tengo que hacer es comprobar si ese nombre de usuario y contraseña existen en el LDAP, si existen le dejo acceder a mi aplicación web y sino no.

Por tanto, estoy intentando hacer una prueba de conexión al LDAP  con mi nombre de usuario y contraseña del LDAP. Ese Username y pwd que os pongo en el código anterior se corresponde con mi nombre de usuario y contraseña del LDAP, porque yo como alumna tengo una cuenta de LDAP.(pero es una prueba, en la realidad tendrá que ser el nombre de usuario y contraseña del profesor que intente identificarse en mi aplicación)

Así que de momento para saber cómo conectarme al LDAP estoy utilizando mi propia cuenta de LDAP.

¿Entendéis lo que quiero hacer?

Gracias por contestarme.

Mari.

 [1] 

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [05/02/2007 01:59:49]

Lo que necesitas es usar autenticación Windows  en vez de anonima , no conectar directamente a LDAP

Creo que encontré una url de como habilitar seguridad basada en windows aqui

http://www.devjoker.com/asp/DetalleTemaForo.aspx?co_tema_foro=433

Si no te sirve avisanos y buscamos más información

 [1] 

 
RE: conexión a LDAP por mari90
Respuesta recibida el [05/02/2007 04:01:36]

 Lo siento, pero no  entiendo lo que quieres decir con: no conectar directamente a LDAP..

y porqué crees que necesito usar autenticación windows?

Gracias.

Mari


 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [05/02/2007 04:58:58]
LDAP no es más que un posible contenedor de usuarios de Windows luego tienes que usar autenticación Windows y olvidarte de donde y como están almacenados ya que LDAP es del sistema operativo windows no de .net.

Busca información de como usar autenticación Windows con ASP.net
 [1] 

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [05/02/2007 05:26:31]
 [1] [2] 

 
RE: conexión a LDAP por mari90
Respuesta recibida el [06/02/2007 05:30:16]

Hola de nuevo!!

Me he puesto en contacto con un administrador que trabaja con el LDAP y en mi caso el LDAP no es de windows, no tengo que acceder a un Active Directory de Windows, en mi caso se trata de un servidor OpenLDAP.

Lo que no sé si las mismas clases:DirectoryEntry y DirectorySearcher me sirven tb para conectarme a un servidor OpenLdap, a mi me da que no...¿Tenéis alguna idea de como hacer consultas sobre un OpenLdap con .NET?

Gracias.

Mari.


 
RE: conexión a LDAP por mari90
Respuesta recibida el [06/02/2007 05:34:18]

Hola de nuevo!!

Me he puesto en contacto con un administrador que trabaja con el LDAP y en mi caso el LDAP no es de windows, no tengo que acceder a un Active Directory de Windows, en mi caso se trata de un servidor OpenLDAP.

Lo que no sé si las mismas clases:DirectoryEntry y DirectorySearcher me sirven tb para conectarme a un servidor OpenLdap, a mi me da que no...¿Tenéis alguna idea de como hacer consultas sobre un OpenLdap con .NET?

Gracias.

Mari.


 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [06/02/2007 10:43:56]
Pues con esas condiciones no tengo ni idea de como hacer lo que pides, lo siento.
 [1] 

 
RE: conexión a LDAP por mari90
Respuesta recibida el [08/02/2007 05:03:47]

Hola de nuevo!!

¿Podría obtener por código la IP del servidor OpenLDAP al que me intento conectar?¿Sabéis si se puede obtener la IP desde .NET dado un dominio porej :xxxxx.ehu.es?

muchas gracias,

Mari.

 [1] [2] 

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [08/02/2007 05:22:19]

La verdad es que nunca he hecho nada parecido :( 

¿Tienes algún tipo de documentación de como conectar aunque sea SIN .net?

 [1] 

 
RE: conexión a LDAP por mari90
Respuesta recibida el [08/02/2007 09:51:01]

Hola!!

He obtenido una pista de alguien que dice que se ha conectado a un servidor OpenLDAP utilizando el siguiente código:

DirectoryEntry nRoot = new DirectoryEntry("LDAP://your ip/o=xxx,c=xxx");
nRoot.AuthenticationType = AuthenticationTypes.None;
nRoot.Username = "uid=xxx,ou=xxx,o=xxx,c=xx";  //full dn

nRoot.Password = "xxx";

DirectorySearcher nDS = new DirectorySearcher(nRoot);
nDS.SearchScope = SearchScope.Subtree;
nDS.Filter = "objectClass=*";
//nDS.PageSize = 1000;

SearchResult sr = nDS.FindOne();

Pero lo que no sé a qué ip se refiere cuando pone:

DirectoryEntry nRoot = new DirectoryEntry("LDAP://your ip/o=xxx,c=xxx");

supongo que tendrá que ser la iP del servidor OpenLDAP no? pero no sé como obtenerla porque yo la única información que tengo del servidor al que quiero conectarme es el el path en formato siguiente:

xxxxx.xx.ehu.es

y no sé qué ip poner ahí.

madre mía que desesperación...

gracias,

Mari.

 [1] 

 
como conecto java-oracle por torrecita
Respuesta recibida el [18/02/2007 07:33:53]
  necesito que me ayuden a despejar mi duda para una clase que tengo pendiente solo necesito que sea algo entendible
 [1] [2] 

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [19/02/2007 01:39:31]
Prueba a cambiar "your ip" por la URL que ya tienes igual es eso.

O desde MS-DOS escribe: ping xxxxx.xx.ehu.es
O prueba con Tracert ping xxxxx.xx.ehu.es por probar que no quede.

Animo que ya casi lo tienes!

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [19/02/2007 03:54:28]

Torrecita, te has confundido de foro pero lo tienes aqui:

http://www.devjoker.com/asp/ver_contenidos.aspx?co_contenido=65


 
Conectar Java con ORACLE por Devjoker
Respuesta recibida el [19/02/2007 04:21:14]

Aqui lo tienes bien mascadito:

Conectar Java con ORACLE


 
RE: conexión a LDAP por Devjoker
Respuesta recibida el [19/02/2007 05:09:07]
Cita de ... aldeamedia
LDAP no es más que un posible contenedor de usuarios de Windows

Para cortarte los dedos ... :-)
 [1] 

 
RE: conexión a LDAP por aldeamedia
Respuesta recibida el [19/02/2007 04:03:33]
Si mezclas LDAP con ASP.net y DirectoryServices lo primero que te viene a la mente es el Active Directory

(Aunque todos conocemos la costumbre de microsoft de usar nombres standard para sus productos).

¿O si te hablan del Mail Server en un Foro de ASP.net tu piensas en el Sendmail en vez de exchange o similares?


 
RE: conexión a LDAP por jaslinfernando
Respuesta recibida el [11/10/2008 12:41:58]
prueba conectarte con el siguiente codigo porfavor si tenes alguna pregunta me podes contactar a jaslinfernando@gmail.com

************************
try
{

string strDominio = "";
//declaramos un arreglo en el cual vamos a
//guardar las subcadenas usando el crterio
//del delimitador de caracteres
string[] strArray = null;
int i;

//strArray = Split(Me.txtDominio.Text, ".") -> vb
char[] caracterDelimitador = { '.' };

//separamos la cadena del txtDominio.Text en las
//subcadenas correspondientes. Cada subcadena esta determinada por el caracter
// '.' pto.
strArray = this.txtDominio.Text.Split(caracterDelimitador);

strDominio = "LDAP://DC=" + strArray[0];

for (i = 1; i < strArray.Length; i++)
{

strDominio = strDominio + ",DC=" + strArray[i];
}

DirectoryEntry entradaDirectorio = new DirectoryEntry(strDominio, this.txtUsuario.Text, this.txtClave.Text);

//*******
string usuario = entradaDirectorio.Username;
//*******
DirectorySearcher buscarDirectorio = new DirectorySearcher(entradaDirectorio);

SearchResult buscaResultado;

buscarDirectorio.Filter = "(SAMAccountName=" + this.txtUsuario.Text + ")";

buscaResultado = buscarDirectorio.FindOne();

entradaDirectorio = buscaResultado.GetDirectoryEntry();

// this.lblError.Text = "Usuario aceptado.";
//con este tira una ecepcin del tipo Hilo(Thread)
//Response.Redirect("home.aspx");
//con esto evitamos la ecepcin
// Response.Redirect("home.aspx", false);
existe = true;

}
catch (Exception ex)
{
string mensaje = ex.Message.ToString();
// this.lblError.Text = "Error: " + mensaje;
//
//this.lblError.Text = "Nop, verifique sus datos porfa!...";


//Response.Redirect("Default.aspx");

}

********************************

espero y te sirva.

Ciao!........

 
RE: conexión a LDAP por jaslinfernando
Respuesta recibida el [11/10/2008 12:43:18]
prueba conectarte con el siguiente codigo porfavor si tenes alguna pregunta me podes contactar a jaslinfernando@gmail.com

************************
try
{

string strDominio = "";
//declaramos un arreglo en el cual vamos a
//guardar las subcadenas usando el crterio
//del delimitador de caracteres
string[] strArray = null;
int i;

//strArray = Split(Me.txtDominio.Text, ".") -> vb
char[] caracterDelimitador = { '.' };

//separamos la cadena del txtDominio.Text en las
//subcadenas correspondientes. Cada subcadena esta determinada por el caracter
// '.' pto.
strArray = this.txtDominio.Text.Split(caracterDelimitador);

strDominio = "LDAP://DC=" + strArray[0];

for (i = 1; i < strArray.Length; i++)
{

strDominio = strDominio + ",DC=" + strArray[i];
}

DirectoryEntry entradaDirectorio = new DirectoryEntry(strDominio, this.txtUsuario.Text, this.txtClave.Text);

//*******
string usuario = entradaDirectorio.Username;
//*******
DirectorySearcher buscarDirectorio = new DirectorySearcher(entradaDirectorio);

SearchResult buscaResultado;

buscarDirectorio.Filter = "(SAMAccountName=" + this.txtUsuario.Text + ")";

buscaResultado = buscarDirectorio.FindOne();

entradaDirectorio = buscaResultado.GetDirectoryEntry();

// this.lblError.Text = "Usuario aceptado.";
//con este tira una ecepcin del tipo Hilo(Thread)
//Response.Redirect("home.aspx");
//con esto evitamos la ecepcin
// Response.Redirect("home.aspx", false);
existe = true;

}
catch (Exception ex)
{
string mensaje = ex.Message.ToString();
// this.lblError.Text = "Error: " + mensaje;
//
//this.lblError.Text = "Nop, verifique sus datos porfa!...";


//Response.Redirect("Default.aspx");

}

********************************

espero y te sirva.

Ciao!........

 
RE: conexión a LDAP por jaslinfernando
Respuesta recibida el [11/10/2008 12:53:26]
Prueba esto para obtener la direccin IP del servidor

**********************

string ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (ip == "" || ip == null)
{
ip = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
}
return ip;

***********************
espero y te ayude

si tenes alguna pregunta me podes escribir a jaslinfernando@gmail.com

Ciao!...


 

Email:*
Alias:*
Título:*
Respuesta:*
Notificar:
(Indica si queremos recibir emails)

 
 

devjoker  Te recomendamos además ...
01/06/2006 Cursores de actualización en PL/SQL    forma parte de...Tutorial PL/SQL
22/10/2005 Insertar datos. INSERT    forma parte de...Tutorial SQL
08/03/2007 Cambiar el nombre del servidor SQL Server
21/02/2007 BULK COLLECT    forma parte de...Tutorial PL/SQL
28/06/2006 Procedimientos almacenados en PL/SQL    forma parte de...Tutorial PL/SQL
16/08/2007 Operaciones con conjuntos.    forma parte de...Tutorial de Transact SQL
14/10/2008 SET IDENTITY_INSERT ON y LinqToSQL
01/07/2008 LinQ To SQL - Un ejemplo sencillo
06/07/2007 Select FOR XML    forma parte de...Tutorial de Transact SQL
01/06/2007 Autogenerado ESSALUD (Solución)

Encuesta
¿A que perfil te adaptas mejor?
[Ver] [Votar]