编辑:我可能不清楚我的问题。授权方案应该在登录页面之后退出。
我正在使用自定义身份验证创建一个Apex应用程序,我成功进入了登录页面,现在能够设置会话项的值。我创建了一个名为“ SESSION_USER_ROLE”的顶点应用程序项目,并在我的登录身份验证过程中,使用以下命令将用户角色设置为会话状态:
Apex_Util.Set_Session_State('SESSION_USER_ROLE', v_role);
使用我的一个用户帐户登录并检查会话应用程序项目后,我可以确认在应用程序项目和会话状态中正确设置了项目值和项目名称。
但是,当我尝试使用返回布尔值的PL / SQL函数访问用于授权方案的'SESSION_USER_ROLE'项目的值时,即使我本应获取'true',我也总是会得到'false'。这是我一直试图用于授权目的的PL / SQL代码:
DECLARE
v_role VARCHAR2(200);
v_auth boolean;
BEGIN
v_role := APEX_UTIL.FETCH_APP_ITEM('SESSION_USER_ROLE');
--This is the value of the SESSION_USER_ROLE for this specific user
if v_role = 'CEO' then
v_auth := true;
else
v_auth := false;
end if;
return v_auth;
END;
我不明白我在做什么错。这不是检索SESSION_USER_ROLE的项目值的正确方法吗?