【问题标题】:Confusion about user Authentication process in an APEX application关于 APEX 应用程序中的用户身份验证过程的混淆
【发布时间】:2015-01-19 20:05:17
【问题描述】:

我现在正在努力学习和理解 Oracle APEX,但对 APEX 应用程序中的用户身份验证过程感到困惑。当我们创建方案类型为“自定义”的新身份验证方案时,有一个名为“身份验证函数名称”的列,我们必须在其中提供将验证用户名/密码的函数名称。

但是在实际的登录页面上,我们可以定义另一个页面进程来执行此验证....所以我的问题是哪个身份验证功能优先?例如,我正在查看一个预先提供的示例应用程序,该应用程序正在使用自定义身份验证方案,该方案在“身份验证函数名称”中定义了“custom_auth”(“custom_auth”是数据库中的存储函数),但在此应用程序的登录页面,有一个页面进程执行实际身份验证,该进程调用不同的函数,如下所示:

wwv_flow_custom_auth_std.login (
                                 P_UNAME       => v('P101_USERNAME'),
                                 P_PASSWORD    => :P101_PASSWORD,
                                 P_SESSION_ID  => v('APP_SESSION'),
                                 P_FLOW_PAGE   => :APP_ID||':1'
                               );

现在我的问题是,当用户输入他的凭据并单击登录按钮时,实际调用了这两个函数中的哪一个?有人可以帮助我并消除我的困惑吗?

提前致谢。

【问题讨论】:

  • 整个想法是,您可以在不修改登录页面的情况下即插即用不同的身份验证方案 - 所以不要更改登录页面的流程,而只需将您的应用程序指向您的自定义身份验证方案。 wwv_flow_custom_auth_std 只会调用您为应用程序设置的任何身份验证方案。

标签: oracle authentication oracle-apex


【解决方案1】:

这两个函数实际上都被调用了。当用户点击登录按钮时,APEX 会使用wwv_flow_custom_auth_std.login 执行页面处理,此函数稍后会调用您的身份验证函数。可以肯定的是,创建一个用于记录的表并添加在记录表中插入一行的函数代码。然后尝试登录并检查表。

【讨论】:

    【解决方案2】:

    开始

    apex_authentication.login(p_username => :P9999_USERNAME,p_password => :P9999_PASSWORD ); 结束;

    【讨论】:

    猜你喜欢
    • 2016-04-13
    • 2017-04-23
    • 2016-04-30
    • 2013-10-05
    • 2011-08-14
    • 2022-08-13
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多