Créez un formulaire pour une connexion personnalisée. Créez des éléments de texte pour le nom d'utilisateur et le mot de passe, etc. et un bouton de connexion. Lorsque l'utilisateur clique sur ce bouton de connexion, appelez cette routine plsql.
déclarer
vPassword fox_user.password%type ; -- obtenez un type de champ de mot de passe à partir de votre table principale d'utilisateurs
plid paramlist ;
commencez
-- vérifiez si le nom d'utilisateur est nul
si :appstart.usn est nul alors
error_message('Le nom d'utilisateur doit être entré.');
go_item('appstart.usn');
raise Form_Trigger_Failure;
end if;
-- vérifier si le mot de passe est null
si :appstart.psw est null alors
error_message('Le mot de passe doit être saisi.');
go_item('appstart.psw');
lever Form_Trigger_Failure;
end if ;
sélectionnez le mot de passe dans vpassword
de fox_user
où rtrim(userid) =rtrim(:appstart.usn);
-- déchiffrez le mot de passe en utilisant votre propre chiffrement / méthode de déchiffrement.
-- le déchiffrement mentionné ci-dessous est une unité de programme que j'ai utilisée
if :appstart.psw !=déchiffrer(vpassword) then
error_message('Mot de passe invalide pour l'utilisateur. Connexion refusée ! ');
go_item('appstart.psw');
raise form_trigger_Failure;
end if;
-- si nom d'utilisateur et mot de passe valides alors créer une liste de paramètres pour transmettre le formulaire d'appel
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);
exception
when no_data_found then
error_message('ID utilisateur non valide. Veuillez saisir un ID utilisateur et un mot de passe valides. Connexion refusée !');
go_item('appstart.usn');
when too_many_rows then
error_message('Internal error...');
when other then
null;
end;