关于APEX应用程序中的用户身份验证过程的困惑

时间:2014-11-21 15:58:31

标签: oracle authentication oracle-apex

我现在正试图学习和理解Oracle APEX,并且对APEX应用程序中的用户身份验证过程感到困惑。当我们创建方案类型为“Custom”的新身份验证方案时,会有一个名为“Authentication Function Name”的列,我们必须提供将验证用户名/密码的函数名称。

但是在实际的登录页面上,我们可以定义另一个页面进程来进行此验证....所以我的问题是哪个认证功能优先?例如,我正在寻找一个预先提供的示例应用程序,该应用程序正在使用自定义身份验证方案,此方案在“身份验证函数名称”中定义“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'
                               );

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

先谢谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

开始

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