Apex 会话隔离
Apex Session Isolation
我有这个问题:
我使用 "APEX_CLONE_SESSION" 在同一个浏览器中有多个独立的会话。它有效,但是当用户创建一个新的主会话时,所有其他以前的会话都已过期。
示例:我有一些在新会话中启动应用程序的初始页面,在此页面中我有一个包含 link 列的报告。此 link 列使用 "APEX_CLONE_SESSION" 开始新的表单页面会话。我可以这样做很多次并且有效。所以,目前,我有初始页面报告和多个具有独立会话的表单页面。
当用户出于某种原因在某处单击启动新初始页面的位置时启动新的主会话时,问题就开始了。发生这种情况时,之前的所有会话都已过期。
创建新的主会话时,是否仍然要保留 "APEX_CLONE_SESSION" 创建的会话?
感谢您的帮助。
正如 Joel Kallman 在他的博客 post 评论中所说,使用 APEX_CLONE_SESSION 创建的所有会话共享同一个 cookie,因此当一个会话无效时,所有其他会话也将无效。
查看更多:http://joelkallman.blogspot.com.br/2016/07/apex-session-isolation-across-multiple.html
目前我正在尝试这种方法来解决问题。
1 - 我创建了一个只有一个 public 页面的应用程序。此页面功能只是重定向到我的目标应用程序。
2 - 在目标应用程序的初始页面中,我使用 localStorage 存储由 apex 生成的会话。
localStorage.setItem('myappsession','&APP_SESSION.');
3 - 在我的用户界面中,我将 "HOME URL" 定义为 public 页面的 url。
4 - 此 public 页面从 localStorage 获取会话的值并重定向到我的目标应用程序。
5 - 我将重定向到我的目标应用程序的代码放在 public 页面的页眉上,所以这个动作发生在第一时间,用户看不出有什么不同。
<script>
var session = localStorage.getItem('myappsession');
if (session == null) {
session = 0;
}
location.href = 'f?p=appalias:startpage:' + session;
</script>
我有这个问题:
我使用 "APEX_CLONE_SESSION" 在同一个浏览器中有多个独立的会话。它有效,但是当用户创建一个新的主会话时,所有其他以前的会话都已过期。
示例:我有一些在新会话中启动应用程序的初始页面,在此页面中我有一个包含 link 列的报告。此 link 列使用 "APEX_CLONE_SESSION" 开始新的表单页面会话。我可以这样做很多次并且有效。所以,目前,我有初始页面报告和多个具有独立会话的表单页面。
当用户出于某种原因在某处单击启动新初始页面的位置时启动新的主会话时,问题就开始了。发生这种情况时,之前的所有会话都已过期。
创建新的主会话时,是否仍然要保留 "APEX_CLONE_SESSION" 创建的会话?
感谢您的帮助。
正如 Joel Kallman 在他的博客 post 评论中所说,使用 APEX_CLONE_SESSION 创建的所有会话共享同一个 cookie,因此当一个会话无效时,所有其他会话也将无效。
查看更多:http://joelkallman.blogspot.com.br/2016/07/apex-session-isolation-across-multiple.html
目前我正在尝试这种方法来解决问题。
1 - 我创建了一个只有一个 public 页面的应用程序。此页面功能只是重定向到我的目标应用程序。
2 - 在目标应用程序的初始页面中,我使用 localStorage 存储由 apex 生成的会话。
localStorage.setItem('myappsession','&APP_SESSION.');
3 - 在我的用户界面中,我将 "HOME URL" 定义为 public 页面的 url。
4 - 此 public 页面从 localStorage 获取会话的值并重定向到我的目标应用程序。
5 - 我将重定向到我的目标应用程序的代码放在 public 页面的页眉上,所以这个动作发生在第一时间,用户看不出有什么不同。
<script>
var session = localStorage.getItem('myappsession');
if (session == null) {
session = 0;
}
location.href = 'f?p=appalias:startpage:' + session;
</script>