[V11功能解说] 如何强制验证身份以便检查当前会话的用户凭据?
你或许会有某项业务需求,需要在采取某些举动之前检查当前会话的用户凭据。这项需求存在于特定行业(例如制药行业的CFR 21-11),以便在某些情况下强制验证身份(从而确保一些修改操作的安全)。
自V11版本起,开发了一个API,给你提供了选项可以实现这点。下面是一个运用ASYRFNC.ACHECKCONNECT的示例。
在我们开始看示例之前,你可以通过在在线搜索网站搜索“管理用户身份验证”来了解更多关于这个API的信息。
[attach]4640[/attach]
所以,想象一下你有一个需求,每次在客户功能中发生付款条件变更的时候,用户必须录入他们的Syracuse密码,重新验证自己的身份。下面,我将向你演示如何做到这点:
1. 打开功能:[b]开发→脚本字典→屏幕→屏幕[/b]。
2. 选择屏幕[b]BPC3[/b]。
3. 点击[字段]页签,找到[b]“PTE(付款条件)”[/b]字段,并添加一项定制控制操作。
[attach]4641[/attach]
4. [b]“保存”[/b]并[b]“审核”[/b]。
5. 打开功能:[b]开发→脚本字典→脚本→脚本编辑器[/b]。
6. 在[文件名称]字段中录入[b]SPEBPC[/b],并添加以下代码。
[attach]4642[/attach]
Subprog C_PTE(VALEUR)
Variable Char VALEUR()
Local Integer OK,ASTATUS
Local Char PASS
local Char MSG(200)
#Prompt user for Password
#This is a reusable program for prompting for a field
Call SAICAR(PASS,"Enter the signature password","Password","A",0,20,"",OK) From GESECRAN
If OK = 2
# this is the call to ASYRFNC.ACHECKCONNECT that checks to find out if the password entered is correct or not
ASTATUS=func ASYRFNC.ACHECKCONNECT(GACTX, PASS,MSG)
If ASTATUS>=[V]CST_AERROR
infbox("You are not allowed to make this change, Your password did not match")
# reverting payment term to the old value
VALEUR =[M:BPC3]PTE
AFFZO [M:BPC3]PTE
Endif
Endif
End
7. [b]“保存”[/b],接着[b]“编译”[/b]。
8. 现在,打开功能:[b]基础数据→商业伙伴→客户[/b]。
9. 选择一个现有客户。
10. 点击[b][财务][/b]页签。
11. 在[付款条件]字段中选择一个新的条件。
12. 在按Tab键一路向后移动过程中,你会看到弹出一个如下窗体,让用户重新录入自己的Syracuse密码。
[attach]4643[/attach]
13. 如果密码正确,那么就会通过新的付款条件,光标会移至下一个字段,但如果录入的密码不正确,则用户会看到以下报错,且付款条件会变为原来的付款条件。
[attach]4644[/attach]
[b]结论:[/b]在发生某些操作行为时,你可以运用ASYRFNC.ACHECKCONNECT来重新验证用户密码。
页:
[1]