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;