Single sign on 如何查找Oracle APEX会话是否已过期

Single sign on 如何查找Oracle APEX会话是否已过期,single-sign-on,oracle-apex,Single Sign On,Oracle Apex,短版: 如果函数wwv_flow_custom_auth_std.is_session_valid(或apex_custom_auth_std.is_session_valid)返回TRUE,会话是否可能已过期但仍处于活动状态?如果是,如何检查会话是否过期 长版本: 我已经为我们的Oracle APEX应用程序创建了一个单点登录系统,大致基于本教程: 唯一的区别是,我的主SSO登录使用Perl,而不是另一个APEX应用程序。它设置了一个SSO cookie,应用程序可以通过数据库过程检查它是否

短版:

如果函数wwv_flow_custom_auth_std.is_session_valid(或apex_custom_auth_std.is_session_valid)返回TRUE,会话是否可能已过期但仍处于活动状态?如果是,如何检查会话是否过期

长版本:

我已经为我们的Oracle APEX应用程序创建了一个单点登录系统,大致基于本教程:

唯一的区别是,我的主SSO登录使用Perl,而不是另一个APEX应用程序。它设置了一个SSO cookie,应用程序可以通过数据库过程检查它是否有效

我注意到当我早上到达时,整个系统都不工作。我从APEX应用程序重新加载一个页面,然后它将我发送到SSO页面,因为会话已过期,我登录,并被重定向回我原来的APEX应用程序页面。除了早上的第一件事,这通常是有效的。APEX会话似乎已过期。在这种情况下,它似乎找到了会话,但拒绝使用它,并将我发送回登录页面

我已经尽了最大的努力去追查这个问题。“wwv\u flow\u custom\u auth\u std.is\u session\u valid”函数返回true,因此我假设会话有效。但在我删除APEX会话cookie之前,一切都不起作用。然后我可以很容易地重新登录

有人知道是否有另一个电话会告诉我会话是否过期吗


谢谢

您可以在“应用程序安全属性”页面下以秒为单位设置最大会话长度

Apex声明如下:

“会话持续时间可能会被每八小时运行一次的作业操作所取代,该作业会删除早于12小时的会话。”

您可以使用视图
apex\u 040100.apex\u WORKSPACE\u SESSIONS
根据会话的存在或创建时间来确定会话是否有效。例如:
session\u已创建-systdate>12小时


您还应该使用“会话超时直接到此URL”属性。

您可以在“应用程序安全属性”页面下设置以秒为单位的最大会话长度

Apex声明如下:

“会话持续时间可能会被每八小时运行一次的作业操作所取代,该作业会删除早于12小时的会话。”

您可以使用视图
apex\u 040100.apex\u WORKSPACE\u SESSIONS
根据会话的存在或创建时间来确定会话是否有效。例如:
session\u已创建-systdate>12小时


您还应该使用“On session timeout direct to this URL”属性。

此解决方案需要特权访问,但您可以在apex架构中查询与您的用户名匹配的任何会话的wwv\u flow\u sessions$视图。如果不存在,则说明会话已超时。此视图还为您提供了一个字段“idle\u timeout\u on”,它将告诉您的会话计划何时超时。

此解决方案需要特权访问,但您可以在apex架构中查询wwv\u flow\u sessions$视图,以查找与您的用户名匹配的任何会话。如果不存在,则说明会话已超时。此视图还为您提供了一个“空闲超时”字段,该字段将告诉您的会话计划何时超时。

抱歉,我不知道-但感谢该链接:)抱歉,我不知道-但感谢该链接:)这可能是一个比答案更好的评论。这可能是一个比答案更好的评论。