DISEÑO DE APLICACIONES


Campos de contraseñas
Estos campos son campos de texto que proporcionan intimidad a los usuarios puesto que al escribir la contraseña cada carácter que introduce el usuario se muestra como un asterisco en la pantalla. El contenido de un campo de contraseñas no está protegido y puede verse desde el cuadro Propiedades del documento del cliente IBM® Lotus® Notes®. Hay varias formas de asegurar el contenido de un campo de contraseñas. Si emplea este campo como método para proteger una aplicación, la mejor forma de preservar la seguridad de su contenido es no guardarlo una vez que se ha verificado la entrada. Para ello, emplee una fórmula que borre el campo una vez verificado. Puede utilizar tanto una fórmula de traducción de los datos introducidos como un evento QuerySave de LotusScript.

Ejemplo: Uso de una fórmula de traducción de los datos introducidos

Esta fórmula traduce los datos introducidos (fórmula de traducción de los datos introducidos) en el campo de contraseñas. Cuando el usuario introduce una contraseña, IBM® Lotus® Domino(TM) busca al usuario en el Directorio de Domino y obtiene el campo HTTPPassword correspondiente. A continuación, compara los datos de ambos campos. Si coinciden, aparecerá un mensaje diciendo que la contraseña ha sido validada. En caso contrario, aparecerá otro mensaje diciendo que la contraseña es incorrecta.

x:=@DbLookup("";"Servidor/HyD":"names.nsf";"($Users)";@Username;"HTTPPassword");

REM "Esta búsqueda compara el valor especificado arriba con el resultado de aplicar la función numérica @Password a los datos introducidos por el usuario e indica si la contraseña introducida es correcta.";

@if(@isError(x);@Prompt([OK];"Error";"Error");@Password(Password) = x;@Prompt([OK];"Correcta";"Correcta");@Prompt([ok];"Contraseña incorrecta";"Ha introducido una contraseña incorrecta"));

REM "Se elimina el campo de contraseñas.";

@Unavailable

Ejemplo: Uso de un evento QuerySave

Este script determina si el campo de contraseñas contiene una contraseña. En caso afirmativo, obtiene el nombre del autor del documento y coloca la forma abreviada del nombre en el campo PublicEncryptionKeys. Así se codifica el campo de contraseñas mediante la clave pública del autor. No obstante, ello no implica buscar la clave en el Directorio de Domino. Al contrario, se obtiene del archivo ID del usuario.

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("Password")(0) <> "" Then

    Set PkName = New NotesName(doc.GetItemValue("Author")(0))

    Call doc.ReplaceItemValue("PublicEncryptionKeys", PkName.Abbreviated )

End If

Ejemplo 2: Uso de un evento QuerySave

Este script determina si uno o varios campos de contraseñas contienen una contraseña. En caso afirmativo, obtiene los valores de los campos Author y OtherEditors (que puede contener un grupo), despliega este último para que contenga nombres e introduce la forma abreviada en el campo PublicEncryptionKeys. Así se codifica el campo de contraseñas mediante la clave pública para las entradas exclusivas de ambos campos. Ello implica buscar la clave de cada uno de los usuarios que figuran en la lista en el Directorio de Domino, a menos que el único valor sea el nombre del usuario actual. Si hay más de un nombre, las claves públicas se obtendrán del Directorio de Domino. Si sólo hay uno, la clave se obtiene del archivo ID del usuario.

Dim s As New NotesSession

Dim db As NotesDatabase

Dim doc As NotesDocument

Set db = s.CurrentDatabase

Dim uidoc As notesuidocument

Set uidoc=source

Set doc = uidoc.document

 

If (doc.GetItemValue("Password1")(0) <> "") Or (doc.GetItemValue("Password2")(0) <> "") Then

    Call doc.ReplaceItemValue("PublicEncryptionKeys",_
   Evaluate(|@Name([Abbreviate];@Unique(Author:OtherEditors))|,doc))

End If

Véase también


Glosario
¿Desea opinar sobre la Ayuda o sobre la utilidad del producto?