2012-02-21 18 views
1

好了,所以这里是正在发生的事情:的Oracle APEX - HTML链接打破会议,并要求新的登录

我有我建立了一个应用程序的客户端。我的客户有一个他们想要发布在他们应用程序首页的流程图。检查。然后,我的客户希望将此流程图设置为图像映射,以便用户可以单击此流程图中的其中一个框并在应用程序的另一部分中将其带至报告。检查。

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

我已经玩过所有的认证设置,希望能够解决这个问题,并试图确定什么会打破会话,但没有运气。

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

+0

所有这些报告与图像地图在同一个应用程序中? – Tom 2012-02-21 15:19:08

+0

是的,他们是。我也在想,我可以利用点击按钮时APEX用来重定向的Javascript吗? – Spags 2012-02-21 15:21:56

回答

2

您应该在链接中传递会话ID。如果你不这样做,那么顶点会将这视为一个新的会话。您可以通过以下网址进行判断:在您的图片地图上记下您网址中的会话ID。当你选择一个应用程序时,再看一下url中的session 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); 
}; 

所以,你可能只需要改变你的链接建设有所为包括会话!