我正在尝试使用内置组功能来控制对Oracle APEX中的应用程序的访问。我在授权方案的表达式1中有以下代码,我正在尝试使用:
DECLARE
VAL BOOLEAN;
BEGIN
IF (
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'Problem Solvers') OR
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'OPS') OR
APEX_UTIL.CURRENT_USER_IN_GROUP(p_group_name=>'SUPERUSER') )then
VAL := TRUE;
else VAL := FALSE;
end if;
RETURN VAL;
END;
此代码将阻止访问我应用中的所有页面,但我无法再访问登录页面(除非我已经从开发界面登录)。我尝试在条件中包含一个额外的“OR:APP_PAGE_ID = 101”,但这会导致意外行为。特别是,当授权用户注销并且未授权用户随后登录时,他们仍然可以访问整个应用程序。我尝试设置清除会话缓存,并在登录页面上清除应用程序缓存进程,但无济于事。有关正确方法的任何想法是什么?
答案 0 :(得分:1)
假设您正在运行Apex 4.2:您应该设置"在公共页面上运行"否。您的登录页面应该是公开的,没有安全检查。