Posts
231
Comments
64
Trackbacks
4
October 2005 Entries
Ausfüllen der Benutzerdaten automatisieren

Häufig werden in elektronischen Workflow-Prozeßen auf Intranetbasis die Daten eines Benutzers oder des Antragstellers benötigt. So z.B. wenn ein Mitarbeiter für seinen Antrag ein elektronisches Formular ausfüllen muss.

Um auf der einen Seite dem Benutzer die Eingabe seiner Benutzerdaten wie Name, Vorname, E-Mail-Adresse, Telefonnummer und Abteilung etc zu ersparen und auf der anderen Seite Schreibfehler zu vermeiden können diese Benutzerdaten im Intranet aus dem Exchange-Sever ausgelesen und in das Formular übertragen werden.

Das folgende kleine Beispiel soll dies verdeutlichen. Wir gehen hierbei davon aus, dass das Verzeichnis auf dem Webserver zum einen NT-authentifiziert ist und zum anderen die notwendigen Rechte besitzt um auf den Exchange-Server lesend zugreifen zu können. Der Zugriff auf Exchange selbst erfolgt über LDAP (siehe hierzu auch den Artikel …).

Beim Aufruf der Seite Benutzerdaten_beispiel.asp wird mit „Request.ServerVariables("AUTH_USER")“ die UserID ermittelt, per Javascript ein neues Fenster geöffnet und dem Skript Benutzerdaten_ermitteln.asp die UserID übergeben.

<script language="javascript">
window.open('Benutzerdaten_ermitteln.asp?uid=<%=uid%>','fenster','width=300,height=200')
</script>

 

Das Skript Benutzerdaten_ermitteln.asp überprüft zunächst ob diese UserID in Exchange existiert. Wenn ja werden die Felder Name, Vorname, E-Mail-Adresse und Telefonnummer aus Exchange ausgelesen und per Javascript in das Formular übertragen und das Javascript-Fenster wieder automatisch geschlossen. Wenn diese UserID in Exchange nicht gefunden werden konnte wird ein entsprechender Hinweis ausgegeben.

<%
option explicit

dim strServerName
dim strUID
dim oConn
dim oCommand
dim strQuery
dim ors

response.write "<b>Ihre Benutzerdaten werden ermittelt</b><BR><BR>"

'***Variablen und Konstanten
strServerName     = "Exchange-Server"
strUID         = Request.QueryString("UID")

set oConn = CreateObject("ADODB.Connection")
set oCommand = CreateObject("ADODB.Command")

oConn.Provider = "ADsDSOObject"
oConn.Open "Ads Provider"

set oCommand.ActiveConnection = oConn


'***Select-String zusammensetzen
strQuery = "<LDAP://" & strServername & ">;(&(objectClass=*)(uid=" & strUID & "));ADsPath,mail,department,telephonenumber,sn,givenname,uid;subtree"


oCommand.CommandText = strQuery
set oRS = oCommand.Execute

if not ors.eof then

    '*** UserID wurde in Exchange gefunden

    Response.Write "Ihre Userdaten wurden gefunden!" & vbcrlf    

    '***die Textfelder im aufrufenden Fenster ausfüllen    
    Response.Write "<script language=""JavaScript"">" & vbcrlf
    Response.Write "window.opener.formular.name.value=""" & oRS.Fields("sn") &", " & oRS.Fields("givenname") & """;" & vbcrlf
    Response.Write "window.opener.formular.vorname.value=""" & oRS.Fields("sn") &", " & oRS.Fields("givenname") & """;" & vbcrlf    
    Response.Write "window.opener.formular.email.value=""" & oRS.Fields("mail") & """;" & vbcrlf
    Response.Write "window.opener.formular.telefon.value=""" & oRS.Fields("telephonenumber") & """;" & vbcrlf
    Response.Write "window.close();" & vbcrlf
    Response.Write "</script>" & vbcrlf

else

'*** UserID wurde in Exchange nicht gefunden

    Response.Write ""
    Response.Write "<font color=""red""><b>Diese Benutzerkennung existiert in Exchange nicht.<BR>" & vbcrlf
    Response.Write "Sie müssen die Felder von Hand ausfüllen.</b></font><BR>" & vbcrlf

    Response.Write "<form>"
    Response.Write "<input type=""button"" value="" OK "" onclick=""window.close()"">"
    Response.Write "</form>"
    
end if

oConn.close
set oCommand = nothing
set ors         = nothing
%>

 

Die beiden Skripts findet man in der Datei benutzer.zip

benutzer.zip (1,78 KB)
posted @ Monday, October 17, 2005 6:52 PM | Feedback (0)
Dateien auf einem Webserver per Skript verschlüsseln

Manche Internet- oder Intranetanwendungen erfordern es, dass Informationen aus Sicherheitsgründen nur verschlüsselt versendet werden dürfen, z.B. wenn wichtige Informationen das Firmennetzwerk verlassen.

Jedoch nicht alle Benutzer sind mit der Verwendung von PGP vertraut. Als Alternative bietet sich der Einsatz der Software PrivateCrypto von Safeguard (http://www.utimaco.de/privatecrypto/) an. Diese Software lässt sich auf dem Webserver installieren und deren Objekte können von ASP aus angesprochen werden. Für private Kunden ist der Einsatz dieser Software kostenlos, ein PDF-Handbuch erläutert alle Funktionen.

Die Verschlüsslung wird dem Verschlüsselungsalgorithmus AES (128 Bit) realisiert und es können mehrere Dateien zusammengefasst werden. Diese Objekte bieten auch Möglichkeit zur Erzeugung selbstextrahierenden Dateien (SFX) die anschließend bequem und sicher per E-Mail versendet werden können.

Ein kleines Beispiel soll den Einsatz verdeutlichen:

<%
'*** Datei verschlüsseln
'***********************

set objCrypto             = createobject("PrivateCrypto.Archive")    'Objekt instanzieren
objCrypto.CompressData        = True                    'Datei beim verschlüsseln komprimieren
objCrypto.EncryptDeleteSource    = False                    'Quelle nicht löschen
objCrypto.NoGUI            = True                    'keine Ausgabe von Meldungen

strDateiname            = Server.MapPath("dateiname.htm")    'zu verschlüsselnde Datei
strEXE                = Server.MapPath("dateiname.exe")    'Name der verschlüsselten Datei
strPasswort            = "weiss ich nicht"            'Passwort zum entschlüsseln


'in diesem Array werden alle zu verschlüsselnden Dateien erfasst
'in diesem Beispiel nur 1 Datei
Dim ArrayCreate(1)
ArrayCreate(0) = strDateiname

'Datei(en) verschlüsseln
objCrypto.CreateSFX strEXE, ArrayCreate, strPasswort

set objCrypto = nothing
%>

Nachdem die Datei verschlüsselt wurde kann diese leicht per E-Mail versendet werden. Eventuell muss man wegen Restriktionen bei dem verwendetet Mail-Server diese Datei vor dem Versenden erst noch zippen oder umbenennen.

Beim Empfänger kommt diese EXE-Datei folgendermaßen an:

Nur nach der Eingabe eines korrekten Passwortes wird die Datei, bzw. die Dateien, in das angegebene Zielverzeichnis entpackt. Es gibt eine Verhinderung von „Brute-Force“ Angriffen durch eine ansteigende zeitliche Verzögerung bei der Neueingabe eines Passwortes.

posted @ Friday, October 07, 2005 6:30 PM | Feedback (0)