Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Erstellen eines benutzerdefinierten Anmeldebildschirms in Oracle Forms 10g

Unten ist die plsql-Beispieleinheit zum Validieren der Anmeldedaten und nach erfolgreicher Validierung zum Öffnen eines neuen Formulars durch Übergeben einiger Parameter in Oracle Forms 10g.
Erstellen Sie ein Formular für die benutzerdefinierte Anmeldung. Erstellen Sie Textelemente für Benutzername und Passwort usw. und einen Login-Button. Wenn der Benutzer auf diese Anmeldeschaltfläche klickt, rufen Sie diese plsql-Routine auf.

deklarieren
vPassword fox_user.password%type; -- Holen Sie sich einen Passwort-Feldtyp aus Ihrer Benutzerstammtabelle
plid paramlist;
begin
-- Prüfen Sie, ob der Benutzername null ist
wenn :appstart.usn null ist, dann
error_message('Benutzername muss eingegeben werden.');
go_item('appstart.usn');
raise Form_Trigger_Failure;
end if;
-- prüfen, ob Passwort vorhanden ist null
wenn :appstart.psw null ist, dann
error_message('Passwort muss eingegeben werden.');
go_item('appstart.psw');
raise Form_Trigger_Failure;
end if;
wähle das Passwort in vpassword
von fox_user
where rtrim(userid) =rtrim(:appstart.usn);
-- entschlüssele das Passwort mit deiner eigenen Verschlüsselung / decrypt-Methode.
-- unten erwähntes decrypt ist eine Programmeinheit, die ich verwendet habe
if :appstart.psw !=decrypt(vpassword) then
error_message('Ungültiges Passwort für den Benutzer. Anmeldung verweigert! ');
go_item('appstart.psw');
raise form_trigger_Failure;
end if;
-- wenn gültiger Benutzername und Passwort dann Parameterliste erstellen, um das aufrufende Formular zu übergeben
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);
Ausnahme
when no_data_found then
error_message('Ungültige Benutzer-ID. Bitte geben Sie eine gültige Benutzer-ID und ein gültiges Passwort ein. Anmeldung verweigert!');
go_item('appstart.usn');
when too_many_rows then
error_message('Interner Fehler...');
when other then
null;
end;