sql >> Base de Datos >  >> RDS >> Oracle

Crear una pantalla de inicio de sesión personalizada en Oracle Forms 10g

A continuación se muestra la unidad plsql de ejemplo para validar las credenciales de inicio de sesión y, después de una validación exitosa, abrir un nuevo formulario pasándole algunos parámetros, en Oracle Forms 10g.
Cree un formulario para un inicio de sesión personalizado. Cree elementos de texto para nombre de usuario y contraseña, etc. y un botón de inicio de sesión. Cuando el usuario haga clic en ese botón de inicio de sesión, llame a esta rutina plsql.

declare
vPassword fox_user.password%type; -- obtenga un tipo de campo de contraseña de su tabla maestra de usuario
plid paramlist;
begin
-- verifique si el nombre de usuario es nulo
si :appstart.usn es nulo entonces
error_message('Se debe ingresar el nombre de usuario.');
go_item('appstart.usn');
aumentar Form_Trigger_Failure;
end if;
-- verificar si la contraseña es nulo
si :appstart.psw es nulo entonces
error_message('Se debe ingresar la contraseña');
go_item('appstart.psw');
raise Form_Trigger_Failure;
fin si;
seleccione la contraseña en vpassword
de fox_user
donde rtrim(userid) =rtrim(:appstart.usn);
-- descifre la contraseña usando su propio cifrado / método de descifrado.
-- el descifrado mencionado a continuación es una unidad de programa que utilicé
if :appstart.psw !=decrypt(vpassword) then
error_message('Contraseña no válida para el usuario. ¡Inicio de sesión denegado! ');
go_item('appstart.psw');
raise form_trigger_Failure;
end if;
-- si el nombre de usuario y la contraseña son válidos, entonces crear una lista de parámetros para pasar el formulario de llamada
plid :=get_parameter_list('formdata');
if Not id_null(plid) then
Destroy_parameter_list(plid);
end if;
plid :=Create_Parameter_list('formdata');
Add_parameter(plid, 'userid', text_parameter, :appstart.usn);
new_form('main', full_rollback, no_query_only, plid);
excepción
cuando no_data_found entonces
error_message('ID de usuario no válido. Ingrese ID de usuario y contraseña válidos. ¡Inicio de sesión denegado!');
go_item('appstart.usn');
cuando demasiado_muchas_filas entonces
mensaje_error('Error interno...');
cuando otros entonces
nulo;
fin;