これを解決するには、条件分岐などではなく、カスタム認証スキームが必要です。また、新しいログイン ページを作成する必要もありません。標準のログイン ページには必要なものがすべて含まれており、現在アクティブな認証スキームを使用するだけです。認証方式は、共有コンポーネントの下にあります。
ここでいくつかのオラクルのドキュメントを見つけることができます。googleで「oracle apex custom authentication」と検索するとブログ記事もたくさん出てきます!
また、カスタム スキームを作成する場合は、アイテム ラベルをクリックしてヘルプを表示できます。たとえば、これは認証関数名のヘルプにあります。
ログインページで入力されたユーザーのユーザー名とパスワードを検証する関数の名前を指定します。何も入力しない場合は、任意のユーザー名/パスワードが成功することを許可します。関数自体は、パッケージ内またはストアド関数として、認証の「PL/SQLコード」テキスト領域で定義できます。
この関数は、それを呼び出すログイン プロシージャにブール値を返す必要があります。エンド ユーザーがログイン ページに入力した値にアクセスするために使用できる 2 つの入力パラメーター「p_username」と「p_password」があります。
たとえば、「PL/SQL コード」テキストエリアに次のコードを入力します。
function my_authentication (
p_username in varchar2,
p_password in varchar2 )
return boolean
is
l_user my_users.user_name%type := upper(p_username);
l_pwd my_users.password%type;
l_id my_users.id%type;
begin
select id , password
into l_id, l_pwd
from my_users
where user_name = l_user;
return l_pwd = rawtohex(sys.dbms_crypto.hash (
sys.utl_raw.cast_to_raw(p_password||l_id||l_user),
sys.dbms_crypto.hash_md5 ));
exception
when NO_DATA_FOUND then return false;
end;
と
my_authentication
「認証機能」として。
関数にはパラメーター p_username と p_password が必要であることに注意してください。
他のフィールドは空白のままにしておくことができます。それらはデフォルトの関数によって処理されます!