Forum: ASP Classic |
Thema:
Re: Verzeichniss erstellen aus LDAP (e-mail, Telefon) |
Von:
Sven Buhk (
14.11.2003 08:14) |
Hier dann noch einmal 2 Lösungen für LDAP.
Beispiel Authentifizierten User auslesen:
username = request.serverVariables("AUTH_USER")
domaene = INSTR(username,"domäne\")
loginuser = Replace(username,domaene,"")
adminuser = "adminuser@domaene.de"
adminpw = "passwort"
adsPath = "LDAP://cn=gruppenname,ou=Gruppen,dc=domaene,dc=de"
Set dso = GetObject("LDAP:")
Set comp = dso.OpenDSObject(adsPath, adminuser, adminpw, ADS_SECURE_AUTHENTICATION)
For each objMember in comp.Members
If objMember.SAMAccountName = loginuser then
user_kuerzel = objMember.initials
user_beschreibung = objMember.description
nachname = objMember.sn
vorname = objMember.givenName
user_name = vorname &" " &nachname
end if
Next
Wichtig ist das man mit einem User rangeht und das man ADS_SECURE_AUTHENTICATION mit einträgt.
Problem ist, das man immer die OU`s wissen muss. Da können sich ja diverse Unterebenen ergeben. LDAP ist nicht besonders performant. Wir haben mit 2 aktuellen Servern und Gigabit im Backbone mal auf ne Menge von etwa 800 User getestet und lagen bei 20 Sekunden...
Da kann man ja fast selbst nachschauen gehen...
Man muss also sehen das man die OU`s klein hält und die Gruppen besser abgreift. Denkbar ist das man über die Server Variable REMOTE_HOST die OU`s besser rausbekommt, bzw. sich das darüber aufschlüsseln kann.
Beispiel zu prüfen auf Gruppenzugehörigkeit:
adminuser = "adminuser@domaene.de"
adminpw = "passwort"
adsPath = "LDAP://cn=gruppenname,ou=Gruppen,dc=domaene,dc=de"
Set dso = GetObject("LDAP:")
Set comp = dso.OpenDSObject(adsPath, adminuser, adminpw, ADS_SECURE_AUTHENTICATION)
For each objMember in comp.Members
If objMember.SAMAccountName = loginuser Then gruppenzugehoerigkeit = "ja" End If
Next
Viele Grüße
Sven
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!