登录口令加密函数、用户登录主Form实现方法和具体代码

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

create函数PWD:

create FUNCTION PWD(sdpassword varchar2) RETURN varchar2 IS

len number;

szpwd varchar2(20);

BEGIN

len:=length(sdpassword);

for i in 1..len loop

szpwd:=szpwd||

chr(ascii(substr(sdpassword,i,1))+(len-i)*i*i+len);

end loop;

return(szpwd);

END;

/

具体使用:

1.在Block中加一Trriggers:Key-Others,代码:null; 防止用户用Shift + F7非法进入。

2.在OK确定Button加一When-Button-Pressed,代码:

DECLARE

szpwd VARCHAR2 (20); --密码

szjmpwd VARCHAR2 (20); --加密码

szjs VARCHAR2 (10) := '4'; --角色

BEGIN

SELECT PASSWORD, js

INTO szpwd, szjs

FROM prid01 --权限管理中的用户登记表

WHERE userid = :login.userid;

szjmpwd := pwd (NVL (:login.PASSWORD, '@'));

IF szpwd = szjmpwd THEN

:GLOBAL.userid := :login.userid;

:GLOBAL.username := :login.username;

:GLOBAL.js := szjs;

:GLOBAL.PASSWORD := :login.PASSWORD;

:GLOBAL.nls_lang := :login.nls_language;

--init_menu; --初始化菜单权限

--init_nav; --初始化工具条上的ERP流程图权限

--init_nav_hr; --初始化工具条上的人力资源模块流程图权限

GO_BLOCK ('MAIN');

--SET_ITEM_PROPERTY('NO_DISPLAY_NEXT_TIME',VISIBLE,PROPERTY_TRUE);

--SET_ITEM_PROPERTY('NO_DISPLAY_NEXT_TIME',ENABLED,PROPERTY_TRUE);

--EXECUTE_TRIGGER('HINT'); --执行每日一帖小程序

ELSE

messagebox.messagebox (nls_error (nls_lang, '00004'));

--这是我自做的多语言messagebox,你们可用你们的

GO_ITEM ('LOGIN.password');

END IF;

EXCEPTION

WHEN NO_DATA_FOUND THEN

messagebox.messagebox (nls_error (nls_lang, '00007'));

--这是我自做的多语言messagebox,你们可用你们的

GO_ITEM ('LOGIN.userid');

WHEN OTHERS THEN

messagebox.messagebox (SQLERRM);

END;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有