カスタムログイン用のフォームを作成します。ユーザー名やパスワードなどのテキストアイテムとログインボタンを作成します。ユーザーがそのログインボタンをクリックしたら、このplsqlルーチンを呼び出します。
宣言
vPasswordfox_user.password%type; -ユーザーマスターテーブルからパスワードフィールドタイプを取得します
plidparamlist;
begin
-ユーザー名がnullかどうかを確認します
:appstart.usnがnullの場合
error_message('ユーザー名を入力する必要があります。');
go_item('appstart.usn');
raise Form_Trigger_Failure;
end if;
-パスワードがnull
if:appstart.psw is null then
error_message('Password must enter。');
go_item('appstart.psw');
raise Form_Trigger_Failure;
end if;
パスワードをvpasswordに選択
from fox_user
where rtrim(userid)=rtrim(:appstart.usn);
-独自の暗号化を使用してパスワードを復号化/復号化方法。
-下記の復号化は私が使用したプログラムユニットです
if:appstart.psw!=decode(vpassword)then
error_message('ユーザーのパスワードが無効です。ログオンが拒否されました! ');
go_item(' appstart.psw');
raise form_trigger_Failure;
end if;
-有効なユーザー名とパスワードの場合呼び出しフォームを渡すためのパラメータリストを作成します
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);
例外
no_data_foundthen
error_message('無効なユーザーID。有効なユーザーIDとパスワードを入力してください。ログオンが拒否されました!');
go_item('appstart.usn');
when too_many_rows then
error_message('Internal error ...');
when others then
null;
end;