gpt4 book ai didi

oracle - 顶点甲骨文 : How to open a public page using a different session?

转载 作者:行者123 更新时间:2023-12-04 01:32:47 26 4
gpt4 key购买 nike

我有一个公共(public) Apex 应用程序,我需要一个特定页面才能在不同的 session 中打开。不要使用与应用程序的其余部分相同的 session 。

基本上,我在 Chrome

  • Tab1:需要认证的页面A
  • Tab2 : 公开的页面 B

  • 我需要两个页面在两个不同的 session 中运行。

    在Page B层,我设置了 “重新加入 session ”已禁用

    现在,当我运行应用程序时,页面 B 在新选项卡中打开,并按预期打开了一个新 session ,但是,它终止了页面 A 的 session ,我被重定向到登录。

    我正在使用具有自定义 session 共享的身份验证方案:

    enter image description here

    有谁知道如何解决这个问题?

    谢谢
    干杯,

    最佳答案

    它从页面 A 终止 session 的原因是,在客户端, session 是使用 cookie 实现的。页面 A 和页面 B 都试图使用相同的 session cookie,但 session ID 不同,因此无论哪个最近写入它都会杀死另一个。

    如果您使用浏览器的 F12 开发人员工具查看 cookie,您应该会看到如下所示:

    Name                  Value                          Domain          Path
    ORA_WWV_APP_115305 ORA_WWV_FMN08hWNhlkjRDOIU_y yoursite.com /pls/apex (etc)

    这是 APP ID 115305 的 session cookie,浏览器会将它与每个 HTTP 请求一起发送到 yoursite.com/pls/apex . Apex 使用 Value验证是否允许您访问由您的 URL 中的 ID 指定的 session 。如果您修改 cookie 或 URL 的 session ID,您的 session 将丢失,Apex 会为您创建一个新 session 。

    所以 Name + Domain + Path在这里形成一种唯一的键。每个唯一名称 + 域 + 路径 cookie 只能有一个 session 。

    我认为这里最简单的解决方案是将您的公共(public)页面 B 放在单独的 Apex 应用程序中 .这样,它将拥有自己的 session cookie,但名称不同。

    (这就是 Oracle App Builder(也是 Apex 应用程序)可以同时进行单独 session 而不终止应用程序 session 的方式。它的 cookie 使用类似 ORA_WWV_USER_9872 的名称)

    替代方法是为页面 B 使用不同的域或路径,但这更棘手。

    看起来您已经设置了自定义身份验证方案,所以我认为您的 cookie 看起来像:
    Name                  Value                          Domain          Path
    SESSIONCOOKIE ORA_WWV_FMN08hWNhlkjRDOIU_y yoursite.com / (etc)

    但是您仍然对页面 A 和页面 B 使用相同的身份验证方案(和相同的 cookie),因此它们不能有单独的 session 。如果 Oracle 支持为每个页面使用单独的身份验证方案,这将是一个很好的实例,但他们不支持。这就是单独的应用程序的用途。

    关于oracle - 顶点甲骨文 : How to open a public page using a different session?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60545100/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com