@littlefootはすでに基本をカバーしています。1 つ付け加えておきたいのは、パスワードは平文で保存するべきではなく、パスワードをハッシュ化し、できればパスワードごとに生成された一意のソルトを使用する必要があるということです。Doug Gault は最近、関連する投稿をここに掲載しました: https://blogs.oracle.com/apex/custom-authentication-and-authorization-using-built-in-apex-access-control-a-how-to
うまくいけば、あなたはすでにそのようなことをしています...
この機能を実装した古いアプリのアプリケーション プロセスの例を次に示します。
declare
l_users_rec users%rowtype;
begin
if :app_page_id != '101' --login
then
select *
into l_users_rec
from users
where upper(email) = upper(:APP_USER);
if l_users_rec.change_password_flag = 'Y' and :app_page_id != '110' --profile
then
wwv_flow.g_unrecoverable_error := true;
owa_util.redirect_url('f?p=' || :APP_ID || ':110:' || :APP_SESSION);
end if;
end if;
end;
一部の API が変更されました。古いものから始めて、新しいものをテストします。
- apex_application.stop_apex_engine (wwv_flow.g_unrecoverable_error の代わりに)
- apex_util.redirect_url (owa_util.redirect_url の代わり)