Acceder a Active Directory desde ASP

25/05/2006 - 11:51 por Antonio | Informe spam
Hola,
Estoy intentando acceder a Active Directory desde una página ASP. El
código que he encontrado y adaptado a mi caso (p.e. para leer las
propiedades de un usuario) funciona bien en ficheros vbs, pero al
ponerlo en un fichero asp, no funciona.

Incluso en una página de Microsoft, este código tan simple para leer
el contenido de un contenedor, no me funciona dentro de la página.
Siempre me aparece el mensaje que no puede encontrar la página, o a
veces error 500 en el servidor... No sé si para hacer esto tengo que
configurar algo en el IIS, o dar algún tipo de permiso especial en
AD...

Alguna idea de lo que puedo hacer?
Gracias

<%@ Language=VBScript %>
<%
' Get the inputs.
containerName = Request.Form("inpContainer")
' Validate compName before using.

If Not ("" = containerName) Then
' Bind to the object.
adsPath = "LDAP://" & containerName
Set comp = GetObject(adsPath)

' Write the ADsPath of each of the child objects.
Response.Write("<p>Enumeration:</p>")
For Each obj in comp
Response.Write(obj.ADsPath + "<BR>")
Next
End If
%>

Preguntas similare

Leer las respuestas

#1 Jhonny Vargas P. [MVP]
25/05/2006 - 15:07 | Informe spam
Hola Antonio,

Debe ser problemas de permisos, el error 500 es un error genérico que te da
tu browser por defecto... para quitar esta opción abre tu browser, anda a
herramientas, opciones de internet, avanzadas y deschequea el item que dices
mostrar mensajes descriptivos para los errores http o algo por el estilo :D


Saludos,
Jhonny Vargas P.
Santiago de Chile

"Antonio" escribió en el mensaje
news:
Hola,
Estoy intentando acceder a Active Directory desde una página ASP. El
código que he encontrado y adaptado a mi caso (p.e. para leer las
propiedades de un usuario) funciona bien en ficheros vbs, pero al
ponerlo en un fichero asp, no funciona.

Incluso en una página de Microsoft, este código tan simple para leer
el contenido de un contenedor, no me funciona dentro de la página.
Siempre me aparece el mensaje que no puede encontrar la página, o a
veces error 500 en el servidor... No sé si para hacer esto tengo que
configurar algo en el IIS, o dar algún tipo de permiso especial en
AD...

Alguna idea de lo que puedo hacer?
Gracias

<%@ Language=VBScript %>
<%
' Get the inputs.
containerName = Request.Form("inpContainer")
' Validate compName before using.

If Not ("" = containerName) Then
' Bind to the object.
adsPath = "LDAP://" & containerName
Set comp = GetObject(adsPath)

' Write the ADsPath of each of the child objects.
Response.Write("<p>Enumeration:</p>")
For Each obj in comp
Response.Write(obj.ADsPath + "<BR>")
Next
End If
%>
Respuesta Responder a este mensaje
#2 Antonio
26/05/2006 - 14:10 | Informe spam
He desmarcado la opción que dices y ya me aparecen errores más
concretos de asp.
He estado buscando en internet a partir de esos códigos de error y
parece que tienes
razón,... hay un problema de permisos y de autenticación.
Configurando el IIS para utilizar Autenticación básica únicamente,
he conseguido ya
hacer alguna cosilla...
El objetivo es hacer una página que permita a ciertos usuarios (con
más o menos privilegios)
hacer determinadas cosas en AD, consultar ciertos campos y modificar
algunos otros...
Seguiré haciendo pruebas
Gracias!
Respuesta Responder a este mensaje
#3 Antonio
26/05/2006 - 14:41 | Informe spam
Por cierto, una duda...
Intento hacer una página asp que valide al usuario que la use, y
utilice las credenciales que el usuario dé.
Si en IIS pongo seguridad básica, el propio Internet Explorer pide
usuario y contraseña antes de mostrar la página
y utiliza esas credenciales para hacer las operaciones (o eso supongo
yo)... Aunque lo mejor sería que la propia
pagina web pidiera las credenciales, las validara contra AD y las
utilizara en las consultas/modificaciones que yo
programe en esa página.
¿Qué diferencia hay entre hacerlo de una forma o de otra? ¿cuál
sería la más apropiada?
Gracias de nuevo!
Respuesta Responder a este mensaje
#4 Matias Iacono
26/05/2006 - 15:45 | Informe spam
Por ejemplo, si estas en una intranet, y colocas AUTENTIFICACION WINDOWS,
toma las credenciales automaticamente del usuario logueado a tu INTRANET por
medio del AD. Esto es bueno, ya que puedes saber con seguridad quien es el
usuario y no molestarlo con el nombre de usuario y contraseña.

Por otro lado, esto no funciona para internet, ya que se desconoce el
usuario en si.

Ahora, la autentificacion básica, digest y otras, agregan un poco mas de
seguridad al envio de los passwords por medio de la red, esto hace que
consigas un poco mas de seguridad (aunque estos métodos son muy básicos).

Dependiendo el lugar donde quieras trabajar con tu autorizacion, y
dependiendo que tanta facilidad le quieras dar al usuario del sistema,
puedes analizar los puntos que te comente arriba.

Saludos.

Matías Iacono
Microsoft MVP ASP/ASP.net
"Antonio" escribió en el mensaje
news:
Por cierto, una duda...
Intento hacer una página asp que valide al usuario que la use, y
utilice las credenciales que el usuario dé.
Si en IIS pongo seguridad básica, el propio Internet Explorer pide
usuario y contraseña antes de mostrar la página
y utiliza esas credenciales para hacer las operaciones (o eso supongo
yo)... Aunque lo mejor sería que la propia
pagina web pidiera las credenciales, las validara contra AD y las
utilizara en las consultas/modificaciones que yo
programe en esa página.
¿Qué diferencia hay entre hacerlo de una forma o de otra? ¿cuál
sería la más apropiada?
Gracias de nuevo!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida