1

私はあなたが元気だと信じています。これまでに得たものの内訳は次のとおりです。私は持っている:

  • テーブルからユーザー名とパスワードを参照するカスタム認証スキーマ。(作品)

ユーザーのアカウントの有効期限が切れているかどうかを確認するためにログインページで検証を行うトリガーまたは関数を設定したい(正確な方法がわからない)expire_password列を追加しました。有効期限が切れた場合は、ユーザーが新しいパスワードを入力してログインできるようにする [パスワードの変更] ページに直接移動します。

助けていただければ幸いです。

前もって感謝します

テンバニ

4

2 に答える 2

0

@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 が変更されました。古いものから始めて、新しいものをテストします。

  1. apex_application.stop_apex_engine (wwv_flow.g_unrecoverable_error の代わりに)
  2. apex_util.redirect_url (owa_util.redirect_url の代わり)
于 2019-10-15T16:08:48.073 に答える