Oracle APEX-HTML链接中断会话并需要新登录



好的,下面是发生的事情:

我有一个客户,我正在为其构建应用程序。我的客户有一个流程图,他们希望张贴在他们的应用程序的首页。检查然后,我的客户希望将此流程图设置为图像映射,以便用户可以单击此流程图中的一个框,然后进入应用程序另一部分的报告。检查

所有这些都是基本的,从技术意义上讲,是有效的。问题是,我以前在使用APEX时遇到过一个问题,即每次用户单击其中一个链接时,都会将其带到登录屏幕。直接链接到页面的URL似乎会中断会话,并要求您再次登录,即使您是从应用程序中的一个页面链接到同一应用程序的另一个页面。

我已经使用了所有的身份验证设置,希望能解决这个问题,并试图确定是什么破坏了会话,但没有成功。

其他人有没有遇到过这个问题,可以分享他们的解决方法吗?我真的不能让用户每次点击链接都登录,我也不能简单地删除页面上的身份验证。提前谢谢。

您应该在链接中传递会话id。如果你不这样做,那么顶点将把这看作一个新的会话。你可以从url中判断:当你在图像地图上时,注意url中的会话id。当您选择一个应用程序时,请重新查看url中的会话id部分。如果它们不同,那么您每次都要开始一个新的会话。

/apex/f?p=190:90:1674713700462259:::::
  • 190->应用程序id
  • 90->页面id
  • 1674713700462259->会话id

要传递会话,这取决于您在哪里构建链接。在PLSQL中,可以通过:SESSION:APP_SESSION 找到它

例如,在plsql动态区域中:htp.p('the session id is '||:SESSION);

在javascript代码中,您可以使用$v("pInstance")动态检索值,也可以使用在运行时替换值的&APP_SESSION.。小示例:

function printsome(){
var d = $("<div></div>");
d.text('&APP_SESSION. = ' + $v("pInstance"));
$("body").append(d);
};

因此,您可能只需要在一定程度上更改链接的结构,以包含会话!

我假设绑定变量会完成这项工作。但他们很无助。最好的方法是将当前会话id传递给项目,然后在链接中使用项目值。

f?p=&APP_ID:32:&P31_会话::P32_CUSTOMER_ID:#CUSTOMER-ID#

最新更新