我怎么知道当前用户可以访问给定的安全密钥?

How do I know that the current user can access a given security key?

在我当前的 Dynamics AX 项目中,我必须在表单中添加一个字段组,并通过给定的安全密钥保护该组。对于无法访问此安全密钥的人,我必须显示替换文本。

如何测试当前用户是否有权访问安全密钥,以便在这种情况下隐藏替换文本?

您可以使用以下代码来判断用户是否有权访问安全密钥:

SecurityKeySet securityKeys; 
AccessType     accessType; 
; 

securityKeys = new SecurityKeySet(); 
securityKeys.loadUserRights(curUserId()); 
accessType = securityKeys.access(securityKeyNum("YourSekurityKey")); 
info(enum2str(accessType));

我建议使用hasSecuritykeyAccess(securityKeyId securityKeyId, AccessType neededAccessLevel)方法。

if (hasSecuritykeyAccess(securityKeyNum(YourSecurityKey), AccessType::Delete))
{ 
    info('Access granted');
}
else
{
    info('Access rejected');
}