Odium: Authentifizierung durch LDAP

Beitrag lesen

Hallo,

ich hab hier ein Script um die Telefonnummern der in einem NT-System angemeldeten User per LDAP abzufragen...
über die konfiguration weiß ich leider nichts...

------------------------------
<html>
<head>
<title>Telefonnumernsuche - Suchergebnisse</title>
<link rel=stylesheet type="text/css" href="kram/style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body bgcolor="#FFFFFF" text="#000000" link="#0067dc" alink="#0067dc" vlink="#0067dc" background="kram/strukt1.jpg">
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tr><td>
<form name="telesuche" action="telefonnummern.asp" method="post">
      <table border="0" width="100%" cellspacing="3">
        <tr align="left">
          <td width="20%" nowrap>Telefonnummernsuche: <input type="text" name="bruchstueck" size="30" maxlength="30"> <input type="submit" name="submit" value=" Suchen! "><br><span id="klein">(Name oder Teil des Namens eingeben)</span><br><br></td></tr>
        <tr><td><a href="default.htm" target="_top">rtk Startseite</a></td></tr>
      </table>
   </form></td></tr>
  <tr><td>
<%
dim fehler
fehler = 0
LDAPgruppe = "LDAP://zserv.pflz.local/CN=F-TelefonanzeigeUnterdruecken,OU=PFLZ,DC=pflz,DC=local"

Set adoConnection = Server.CreateObject("ADODB.Connection")
adoConnection.Provider = "ADSDSOObject"
adoConnection.Open "", vbNullString, vbNullString
If adoConnection.State <> 1 Then
 fehler = 1
End If
%>
<table border="0" cellpadding="5" cellspacing="0" width="100%">
<%
if fehler = 0 then
sNameSoll = trim(request.form("bruchstueck"))
sNameSoll = Trim(Lcase(sNameSoll))
call ersetze_umlaute(sNameSoll)

'--------------------------------------------------------------
'  Zu unterdrückende User ermitteln:
'--------------------------------------------------------------
Set adsGroup = GetObject(LDAPgruppe)
'MsgBox "Verbunden mit " & adsGroup.ADsPath

Set rstemp3 = Server.CreateObject("ADODB.Recordset")
rstemp3.Fields.Append "Name", 129, 4096
rstemp3.open

For each adsMember In adsGroup.Members
  sName = adsMember.Name
  call CN_Abzwicken(sName)
  rstemp3.AddNew
  rstemp3("Name") = Lcase(sName)
  rstemp3.update
Next

'--------------------------------------------------------------
'  Eigentliche Suche:
'--------------------------------------------------------------
Set adoRsDir = adoConnection.Execute _
               ("LDAP://zs04.lralz.local/OU=LRALZ,DC=lralz,DC=local;(objectClass=User);Name, SAMAccountName, telephoneNumber, department;SubTree")
sName = ""

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Fields.Append "Name", 129, 4096
rs.Fields.Append "Nummer", 129, 4096
rs.Fields.Append "Abteilung", 129, 4096
rs.open

While Not adoRsDir.Eof
  sName = lcase(adoRsDir.Fields.Item("Name").Value)
  If Instr(sName, sNameSoll) > 0 Then
    sNummer = adoRsDir.Fields.Item("telephoneNumber").Value
    if sNummer <> "" Then
      rs.AddNew
      rs("Name") = sName
      rs("Nummer") = sNummer
      rs("Abteilung") = adoRsDir("department") & " "
'     NULL ist nicht erlaubt, deshalb Leerzeichen dran
      rs.update
    End If
  End If
  adoRSDir.MoveNext
Wend

if Not rs.Eof Then
  rs.Sort = "Name"
  rs.Movefirst
End If
Trennzeichen = ", -"
%>
<tr><td colspan="3">
<%
if rs.recordcount = 1 then
response.write "<span id=""ueb3bl"">" & rs.recordcount & "</span><span id=""fettbl""> passenden Eintrag zum Suchbegriff  </span><span id=""ueb3bl"">""" & sNameSoll & """</span><span id=""fettbl"">  gefunden.</span></td></tr><tr><td colspan=""3""> </td></tr>"
else
response.write "<span id=""ueb3bl"">" & rs.recordcount & "</span><span id=""fettbl""> passende Einträge zum Suchbegriff  </span><span id=""ueb3bl"">""" & sNameSoll & """</span><span id=""fettbl"">  gefunden.</span></td></tr><tr><td colspan=""3""> </td></tr>"
end if
if rs.recordcount > 0 then
response.write "<tr><td id=""fettbl"">Name</td><td id=""fettbl"">Telefonnummer</td><td id=""fettbl"">Abteilung</td></tr>"
end if
While Not rs.Eof
  sName = rs.Fields.Item("Name").Value
  If Not rstemp3.Bof Then
    rstemp3.MoveFirst
  End If
  rstemp3.Find "Name = '" & sName & "'"
  If rstemp3.Eof Then
    sName = klein2gross(sName, Trennzeichen)
 response.write "<tr><td style=""border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:blue;"">" & sname & "</td>"
 response.write "<td style=""border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:blue;"">" & rs("Nummer") & "</td>"
 response.write "<td style=""border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:blue;"">" & rs("Abteilung") & "</td></tr>"
  End If
  rs.MoveNext
Wend
response.write "</table></td></tr></table>"

'--------------------------------------------------------------
'  Unterprogramme
'--------------------------------------------------------------
public Sub ersetze_umlaute(eingabe)
eingabe = replace(eingabe, "ö","oe")
eingabe = replace(eingabe, "ä","ae")
eingabe = replace(eingabe, "ü","ue")
eingabe = replace(eingabe, "ß","ss")
end Sub

'--------------------------------------------------------------
public function klein2gross(eingabe, die_zeichen)
  klein2gross = ""
  t_zeichen = 1
  do while len(eingabe) > 0
    vornbeginn = left(eingabe,1)
    eingabe = mid(eingabe,2)
    t_zeichen_alt = t_zeichen
    if instr(die_zeichen, vornbeginn) = 0 then
      t_zeichen = 0
    else
      t_zeichen = 1
    end if
    if t_zeichen_alt = 1 AND t_zeichen = 0 then
      vornbeginn = Ucase(vornbeginn)
    end if
    klein2gross = klein2gross & vornbeginn
  loop
end function

'--------------------------------------------------------------
public Sub CN_Abzwicken(aString)
  iii = Instr(aString, "")
  if iii > 0 Then
    aString = Left(aString, iii-1) & Mid(aString, iii+1)
  End If
  If Instr(aString, "CN=") = 1 Then
    aString = Mid(aString, 4)
  End If
end Sub

'--------------------------------------------------------------
else
response.write "<tr><td colspan=""3"" align=""center"">Ein fehler ist aufgetreten<br>Verarbeitung nicht möglich</td></tr>"
end if

%>
</body>
</html>
------------------------------

Odium