Oracle Forms 11g默认登录屏幕

时间:2018-03-20 08:01:45

标签: oracle forms oracle11g oracleforms oracle-fusion-middleware

我们使用内部oracle数据库身份验证来验证应用程序的用户(在Oracle Forms 11g中)。用户在Oracle Forms 11g提供的默认登录屏幕中输入用户ID,密码和连接描述(附带屏幕截图)。当用户按下CONNECT按钮时,我应该在哪个触发器中放置函数来验证密码限制,例如Oracle Forms中的密码长度等?

非常感谢您的投入

THX

enter image description here

2 个答案:

答案 0 :(得分:1)

没有,我猜想。

这看起来像是内置的登录表单。它应该接受凭证,并且 - 如果它们是有效的 - 让你进去。如果它是你自己的形式非常类似于前者,那么你要使用WHEN-VALIDATE-ITEM(在密码项上) )或WHEN-BUTTON-PRESSED触发器(在CONNECT按钮上)。

密码策略应在其他地方强制执行,例如以用于创建用户和密码的形式,或者 - 甚至更好 - 在个人资料中强制执行。看一下CREATE PROFILE命令,它也解释了密码参数,其中一个是PASSWORD_VERIFY_FUNCTION,你可以用它来强制执行不同的条件(比如你所说的最小长度)。

答案 1 :(得分:1)

您可能会获得usernamepasswordconnection_string参数'内部oracle数据库身份验证屏幕的值,将它们替换为get_application_property方法的参数。

表单级别的

ON-LOGONON_ERROR触发器可用于管理您的任务: enter image description here

ON-LOGON 的代码文字

declare
  v_cnn    varchar2(35):='myDB';
begin 
    :global.v_lng := 6 ;
    :global.v_pwd := get_application_property(password);

    if ( length(:global.v_pwd) > :global.v_lng ) then   
    logon('myschema',:global.v_pwd||'@'||v_cnn);
    end if; 
end;

ON-ERROR 的代码文字是

begin   
    if DBMS_Error_Code = -1017 then      
         :global.v_pwd := get_application_property(password);  
          if ( length(:global.v_pwd) < :global.v_lng ) then
           message('The length of the Password should be at least '||:global.v_lng||' characters !');   message('');      
          else  
           message(DBMS_Error_Text); message('');         
          end if;
    end if; 
end;

作为身份验证密码具有特定最小长度的身份验证示例。