ADSI y Detalles del Usuario

Tengo un problemilla a ver si me pueden responder.
Tengo el ADSI 2.5 instalado en mi Windows NT Server 4.0. Necesito que una ASP me obtenga TODOS los detalles posibles del usuario que está conectado, es decir:
Nombre de Usuario:
Password (no creo necesaria):
Nombre Completo:
Dominio:
Detalles del Exchange (si es posible):
- Dirección de Correo:
- División (Departamento)
- Teléfono
- Fax
- Etc.
He estado viendo en la MSDN de la Microsucks y ejemplos en ASP no he encontrado, solo en Visual FoxPro 6... Y no pude correrlo, porque no se usarlo...
Alguien puede enviarme un ejemplito a [email protected]?
Gracias

1 Respuesta

Respuesta
1
Sé que es poca cosa lo que voy a ofrecerte, pero es todo lo que he podido obtener del Active Directory con ASP.
Si el usuario se ha autentificado en el sistema podemos conocer su nombre de usuario mediante una variable de servidor:
Request.ServerVariables("LOGON_USER")
Si el ámbito de usuarios es cerrado, puedes mantener tu propia base de datos con los datos de los usuarios, indexados por el nombre de usuario.
Además, la variable LOGON_USER tiene la forma dominio/nombre de usuario.
El password no creo que puedas obtenerlo, y menos sus datos de Exchange, Ese tipo de cosas te las tiene que mandar el cliente de forma explícita. No estoy 100% seguro, pero diría que poder hacer eso supondría un agujero de seguridad enorme :)
Lamento decirte que estás mal, porque si se puede obtener...
Por ejemplo, ya he descubierto como se obtiene el Nombre Completo y además los grupos que posee el usuario (grupos de acceso).
Creo que se puede conectar con Exchange, pero en eso estoy... Por si tienes dudas, mira este código no más... :-)
<%
sDomain = Request("txtDomain")
sGroup = Request("txtGroup")
sUser = Request("txtUser")
if len(trim(sDomain)) > 0 then
set objUser = GetObject("WinNT://" & sDomain & "/" & sUser)
if len(trim(sGroup)) = 0 then
Response.Write "<p>" & sDomain & "\" & sUser & " is a member of the following groups</p><ul>"
for each objGroup in objUser.Groups
Response.Write "<li>" & objGroup.Name & "</li>" & vbCRLF
next
Response.Write "</ul>"
else
bMember = FALSE
for each objGroup in objUser.Groups
if strcomp(sGroup, objGroup.Name, 1) = 0 then
bMember = TRUE
exit for
end if
next
if bMember then
Response.Write "<p>" & sDomain & "\" & sUser & " is a member of the " & sGroup & " group</p>"
else
Response.Write "<p>" & sDomain & "\" & sUser & " is not a member of the " & sGroup & " group</p>"
end if
end if
end if
%>
<form>
<table border=0>
<tr><td>Domain</td><td><input type=TEXT name="txtDomain" value="<%=sDomain%>"></td>
<tr><td>User</td><td><input type=TEXT name="txtUser" value="<%=sUser%>"></td>
<tr><td>Group</td><td><input type=TEXT name="txtGroup" value="<%=sGroup%>">(leave blank to list all groups)</td>
</table>
<p><input type=SUBMIT value="Query"></form>
Con esto puedes obtener más información... pero aún me falta saber qué otras variables posee el objUser ... :-(... No es como en Java que la documentación es clarita...
Pésima documentación de Microsoft... :-)
Porque me has dado tu más información a mi que yo a ti :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas