我现在正试图学习和理解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'
);
现在我的问题是,当用户输入他的凭据并单击登录按钮时,实际调用了哪两个函数?有人可以帮助我,消除我的困惑吗?
先谢谢。
答案 0 :(得分:1)
实际上都调用了这两个函数。当用户单击登录按钮时,APEX使用wwv_flow_custom_auth_std.login
执行页面处理,此函数稍后将调用您的身份验证功能。可以肯定的是,创建一个用于记录的表,并添加在日志记录表中插入行的函数代码。然后尝试登录并查看表格。
答案 1 :(得分:0)
开始
apex_authentication.login(p_username => :P9999_USERNAME,p_password => :P9999_PASSWORD ); 结束;