1

ユーザーを認証する機能がありますが、テストしたので機能します。

認証機能:

create or replace function authenticate(p_username in VARCHAR2, p_password in VARCHAR2) 
return BOOLEAN 
is 
  l_password varchar2(4000); 
  l_stored_password varchar2(4000); 
  l_count number; 
begin 
select count(*) into l_count from users where username = p_username; 
if l_count > 0 then 
  -- First, we fetch the stored hashed password
  select password into l_stored_password 
   from users where upper(username) = upper(p_username); 
    -- we have to apply the custom hash function to the password 
    l_password := custom_hash(p_username, p_password); 
    -- Finally, we compare them to see if they are the same and return
    -- either TRUE or FALSE
    if l_password = l_stored_password then 
      return true; 
    else 
      return false; 
    end if; 
else 
  -- The username provided is not in the users table
  return false; 
end if; 
end; 

それでも、Apexでの認証が機能しないため、認証スキームをアクティブにして、認証機能にリンクしました。apex4.2を使用しています

4

1 に答える 1

1

これは私が私のセットアップを持っている方法です:

スキームタイプ:カスタム
認証関数名:my_auth_func
ソース:

FUNCTION my_auth_func (p_username IN VARCHAR2, p_password IN VARCHAR2)
RETURN BOOLEAN
IS
    is_authenticated BOOLEAN := FALSE;
BEGIN
    --authentication logic, etc...
    RETURN is_authenticated;
END
于 2013-02-27T22:40:51.697 に答える