ANWENDUNGSGESTALTUNG
Beispiel: Eingabeumsetzungsformeln verwenden
Diese Formel ist eine Eingabeumsetzungsformel für ein Kennwortfeld. Wenn der Benutzer ein Kennwort eingibt, sucht IBM® Lotus® Domino(TM) den Benutzer im Domino-Verzeichnis und ruft das entsprechende HTTPPassword-Feld ab. Dann vergleicht Domino den Wert, den der Benutzer eingibt, mit dem Wert im Feld "HTTPPassword". Stimmen die Werte überein, wird die Nachricht "Kennwort korrekt" ausgegeben. Stimmen die Werte nicht überein, lautet die Nachricht "Sie haben ein falsches Kennwort eingegeben".
x:=@DbLookup("";"Server/Acme":"names.nsf";"($Users)";@Username;"HTTPPassword");
REM "Diese Formel vergleicht obigen Wert mit dem vom Benutzer eingegebenen Wert, nachdem dieser mithilfe der @Password-Hash-Funktion geprüft wurde, und meldet dem Benutzer, ob das eingegebene Kennwort richtig oder falsch ist.";
@if(@isError(x);@Prompt([OK];"Fehler";"Es ist ein Fehler aufgetreten");@Password(Password) = x;@Prompt([OK];"Kennwort korrekt";"Das eingegebene Kennwort ist richtig");@Prompt([ok];"Falsches Kennwort";"Sie haben ein falsches Kennwort eingegeben"));
REM "Durch diese Formel wird das Kennwortfeld gelöscht.";
@Unavailable
Beispiel: QuerySave-Ereignis verwenden
Dieses Script ermittelt, ob das Kennwortfeld ein Kennwort enthält. Ist dies der Fall, wird der Name des Dokumentenerstellers abgerufen und in gekürzter Form in das Feld "PublicEncryptionKeys" geschrieben. Dadurch wird das Kennwortfeld mit dem öffentlichen Schlüssel des Autors verschlüsselt. Es wird jedoch keine Suche im Domino-Verzeichnis zum Abrufen des Schlüssels durchgeführt. Dieser wird aus der ID-Datei des Benutzers bezogen.
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim session As New NotesSession
Set db = session.CurrentDatabase
Set uidoc=Source
Set doc=source.Document
If doc.GetItemValue("Kennwort")(0) <> "" Then
Set PkName = New NotesName(doc.GetItemValue("Author")(0))
Call doc.ReplaceItemValue("PublicEncryptionKeys", PkName.Abbreviated )
End If
Beispiel 2: QuerySave-Ereignis verwenden
Dieses Script ermittelt, ob ein oder mehrere Kennwortfelder ein Kennwort enthalten. Wenn eins der Felder ein Kennwort enthält, ruft das Script die Werte aus dem Feld "Author" und dem Feld "OtherEditors" (das eine Gruppe enthalten kann) ab und erweitert dieses Feld, sodass es Namen enthält. Der Name wird in gekürzter Form in das Feld "PublicEncryptionKeys" geschrieben. Dadurch wird das Kennwortfeld effektiv mit den öffentlichen Schlüsseln für alle eindeutigen Einträge in den beiden Feldern verschlüsselt. Dies beinhaltet eine Suche im Domino-Verzeichnis, um die Schlüssel für alle aufgeführten Benutzer zu erhalten, es sei denn, der Name des aktuellen Benutzers ist der einzige Wert. Wenn mehr als ein Name gesucht werden muss, findet das Script die öffentlichen Schlüssel im Domino-Verzeichnis. Wenn nur nach dem Schlüssel des Autors gesucht werden muss, wird er aus der ID-Datei des Benutzers abgerufen.
Dim s As New NotesSession
Set db = s.CurrentDatabase
Dim UIDoc As NotesUIDocument
Set doc = uidoc.document
If (doc.GetItemValue("Kennwort1")(0) <> "") Or (doc.GetItemValue("Kennwort2")(0) <> "") Then
Call doc.ReplaceItemValue("PublicEncryptionKeys",_ Evaluate(|@Name([Abbreviate];@Unique(Author:OtherEditors))|,doc))
Siehe auch