Oracle apex 在同一工作区中使用多个apex应用程序的单次登录

Oracle apex 在同一工作区中使用多个apex应用程序的单次登录,oracle-apex,Oracle Apex,现在,我们基于同一模式创建了5个应用程序,它们都在一个工作区中。实际上,最初它们是在不同的机器上创建的。现在,我们必须从AD验证用户,并且根据用户类型,必须允许或拒绝某些模块。我已经创建了一个寻呼机应用程序,它有5个按钮,可以根据登录的用户控制按钮的渲染,但是…问题是,在应用程序内部,我对一些用户的一些报告有限制…现在一种方法是分别为每个应用程序创建一个登录,这样每个应用程序都会确切地知道谁登录了。但这是不切实际的,因为我们需要单点登录的功能。 请让我知道如何为apex工作区内的所有应用程序创建

现在,我们基于同一模式创建了5个应用程序,它们都在一个工作区中。实际上,最初它们是在不同的机器上创建的。现在,我们必须从AD验证用户,并且根据用户类型,必须允许或拒绝某些模块。我已经创建了一个寻呼机应用程序,它有5个按钮,可以根据登录的用户控制按钮的渲染,但是…问题是,在应用程序内部,我对一些用户的一些报告有限制…现在一种方法是分别为每个应用程序创建一个登录,这样每个应用程序都会确切地知道谁登录了。但这是不切实际的,因为我们需要单点登录的功能。 请让我知道如何为apex工作区内的所有应用程序创建一个登录页面,以便每个应用程序都知道当前登录的用户的名称。 对于这5个应用程序,我实际上使用了No_身份验证方案。我最初在我的单页应用程序中使用以下函数将按钮呈现给用户或拒绝

 create or replace function getUserName return varchar2
is
  userName varchar2(20);
  c owa_cookie.cookie;
begin
   c := owa_cookie.get('LOGIN_USERNAME_COOKIE');
   userName := c.vals(1);
  return trim(userName);
  end;
但是我不能在我的5个实际应用程序中使用这个函数

请帮忙。
提前表示感谢。

在共享会话中查看我的答案:

您需要进一步做的是:为每个应用程序提供一个身份验证方案。您的未经身份验证的应用程序也需要身份验证,您可以从主应用程序复制方案并将其订阅到主应用程序,因此主应用程序上的任何更改都将反映在订阅的应用程序上。 最重要的是:在身份验证方案中使用相同的cookie名称,并在应用程序之间链接时传递会话

如果你想为每次必须执行的登录重定向到主应用程序,你需要在“子”应用程序的登录页面中添加一个应用程序进程。 将其装入
加载-在页眉之前

htp.init();
owa_util.redirect_url('f?p=main_app:101');  --redirects
apex_application.g_unrecoverable_error := true; --stops processing
当用户登陆子应用程序的登录页面时,这将重定向到主应用程序的登录页面

您还可以更改身份验证方案的注销url。例如,你可以参考你的主页应用程序


然后,您可以在应用程序中使用
:APP\u USER
,并跳过cookie方法,它们是相同的

所以基本上,这是一个增强的问题,从?我必须在应用程序之间共享身份验证,但我的要求是让这一切对用户透明。用户不应该对每个应用程序进行身份验证。niether我不希望用户被重定向到主应用程序的登录页面。我希望用户登录一次,然后识别所有其他应用程序。你的指引对我来说是金子。我正在进行一些研发工作,如果出现打嗝,我会给你回复,希望你不会介意。没问题,我来帮你。因为你是一个新用户,你可能不知道:你可以接受对你有帮助的答案,这会给你一些代表性。过一段时间,你也可以用投票来标记答案。关于您的问题:您需要使用身份验证来屏蔽您的应用程序,否则您就没有身份验证。如果您只是使用具有相同cookie名称的身份验证方案,则设置为。你不需要重定向或做任何事情。用户最多只能进行一次身份验证:当他们进入任何应用程序时。然后,你需要做的就是确保在跳转应用程序时通过会话。