Oracle apex Apex会话隔离

Oracle apex Apex会话隔离,oracle-apex,oracle-apex-5,oracle-apex-5.1,Oracle Apex,Oracle Apex 5,Oracle Apex 5.1,我有一个问题: 我使用“APEX_CLONE_SESSION”在同一浏览器中拥有多个独立的会话。它可以工作,但是当用户创建一个新的主会话时,以前的所有其他会话都将过期 示例:我有一个在新会话上启动应用程序的初始页面,在这个页面中我有一个带有链接列的报告。此链接列使用“APEX\u CLONE\u session”启动新表单页面会话。我可以做很多次,而且效果很好。因此,目前,我有初始页面报告和多个具有独立会话的表单页面 由于某种原因,当用户单击启动新初始页面的某个位置启动新的主会话时,问题就开始了

我有一个问题:

我使用“APEX_CLONE_SESSION”在同一浏览器中拥有多个独立的会话。它可以工作,但是当用户创建一个新的主会话时,以前的所有其他会话都将过期

示例:我有一个在新会话上启动应用程序的初始页面,在这个页面中我有一个带有链接列的报告。此链接列使用“APEX\u CLONE\u session”启动新表单页面会话。我可以做很多次,而且效果很好。因此,目前,我有初始页面报告和多个具有独立会话的表单页面

由于某种原因,当用户单击启动新初始页面的某个位置启动新的主会话时,问题就开始了。发生这种情况时,所有以前的会话都将过期

在创建新的主会话时,是否仍然可以持久化“APEX_CLONE_会话”创建的会话


感谢您的帮助。

正如Joel Kallman在他的博客帖子评论中所说,使用APEX_CLONE_SESSION创建的所有会话共享同一个cookie,因此当一个会话无效时,所有其他会话也将无效


查看更多信息:

正如Joel Kallman在他的博客帖子评论中所说,使用APEX_CLONE_SESSION创建的所有会话共享同一个cookie,因此当一个会话无效时,所有其他会话也将无效


请参阅更多信息:

目前,我正在尝试这种方法来解决问题

1-我创建一个应用程序,使其只有一个公共页面。此页面函数仅用于重定向到我的目标应用程序

2-在目标应用程序的初始页面中,我使用localStorage存储apex生成的会话

localStorage.setItem('myappsession','&APP_SESSION.');
3-在我的用户界面中,我将我的“主页URL”定义为我的公共页面的URL

4-此公共页从localStorage获取会话值并重定向到我的目标应用程序

5-我将重定向到目标应用程序的代码放在公共页面的标题上,因此此操作在第一时间发生,用户看不到任何差异

<script>

var session = localStorage.getItem('myappsession');
if (session == null) {
    session = 0;
}

location.href = 'f?p=appalias:startpage:' + session;

</script>

var session=localStorage.getItem('myappsession');
if(会话==null){
会话=0;
}
location.href='f?p=appalias:startpage:'+会话;

目前,我尝试用这种方法来解决问题

1-我创建一个应用程序,使其只有一个公共页面。此页面函数仅用于重定向到我的目标应用程序

2-在目标应用程序的初始页面中,我使用localStorage存储apex生成的会话

localStorage.setItem('myappsession','&APP_SESSION.');
3-在我的用户界面中,我将我的“主页URL”定义为我的公共页面的URL

4-此公共页从localStorage获取会话值并重定向到我的目标应用程序

5-我将重定向到目标应用程序的代码放在公共页面的标题上,因此此操作在第一时间发生,用户看不到任何差异

<script>

var session = localStorage.getItem('myappsession');
if (session == null) {
    session = 0;
}

location.href = 'f?p=appalias:startpage:' + session;

</script>

var session=localStorage.getItem('myappsession');
if(会话==null){
会话=0;
}
location.href='f?p=appalias:startpage:'+会话;

Define“user start a new primary session”-这是在没有会话ID的情况下打开URL吗?是的,当用户打开没有会话ID的URL时,会启动主会话。这与不使用克隆会话时的行为相同。您至少需要阻止用户在应用程序中有机地执行此操作。定义“用户启动新的主会话”-这是打开没有会话ID的URL吗?是的,Scott,当用户打开没有会话ID的URL时会启动主会话。这与不使用克隆会话时的行为相同。你至少需要阻止用户在应用程序中进行有机操作。好的,谢谢。所以这个错误是意料之中的。没有办法解决或阻止这种应用程序的使用!?我想不会,因为cookie是无效的。真的有必要在你的应用程序中使用多个会话吗?这不是一个大问题,我只是想找到一种模式来解决这个问题。但是,系统仍然可以这样。这种情况只是偶然发生的。感谢您的帮助。您可以通过在为用户定义的链接中始终包含会话ID来解决此问题。好的,谢谢。所以这个错误是意料之中的。没有办法解决或阻止这种应用程序的使用!?我想不会,因为cookie是无效的。真的有必要在你的应用程序中使用多个会话吗?这不是一个大问题,我只是想找到一种模式来解决这个问题。但是,系统仍然可以这样。这种情况只是偶然发生的。感谢您的帮助。您可以通过在为用户定义的链接中始终包含会话ID来解决此问题。非常好的解决方案。我会尝试类似的方法。很好的解决方案。我会试试类似的。