可以自己写一个自己用户的密码修改命令,CHGUSRPRF和CHGPWD都不适合在程序中使用,CHGUSRPRF需要较高的用户权限,CHGPWD需要交互。 API QSYCHGPW比较适合我们的需求。
不过这个API也是有限制的,当user id为*current是可以使用。当不是*current需要较高的用户权限。
下面是简单的实现代码:
H nomain
D ChgPWD pr 1N
D PramOldPWD 10
D PramNewPWD 10
D*
p ChgPWD B EXPORT
D ChgPWD pi 1N
D PramOldPWD 10
D PramNewPWD 10
D*
D ChgMyPWD PR extpgm('QSYCHGPW')
D Usrid 10
D OldPWD 256 Options( *VarSize )
D NewPWD 256 Options( *VarSize )
D Error 32767 Options( *VarSize )
D*
D Usrid s 10 Inz('*CURRENT')
D Rcode s 1N Inz('0')
D Error ds Qualified
D BytPrv 10i 0 Inz( %Size( Error ))
D BytAvl 10i 0
D MsgId 7a
D 1a
D MsgDta 128a
/free
callp ChgMyPWD(Usrid:
PramOldPWD:
PramNewPWD:
Error);
if Error.BytAvl = 0;
Rcode = '0';
else;
Rcode = '1';
endif;
return Rcode;
/end-free
p ChgPWD E
测试程序
D ChgPWD pr 1N
D PramOldPWD 10
D PramNewPWD 10
D*
D Rcode s 1N
D PramOldPWD s 10 inz('BGT55TGB')
D PramNewPWD s 10 INZ('NHY66YHN')
D*
/free
Rcode =ChgPWD(PramOldPWD:
PramNewPWD);
if Rcode = '1';
dsply 'error';
else;
Dsply 'change pwd successfully';
endif;
*inlr = *on;
return;
/end-free
阅读(3326) | 评论(0) | 转发(0) |