Axapta 我如何知道当前用户可以访问给定的安全密钥?

Axapta 我如何知道当前用户可以访问给定的安全密钥?,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,在我当前的Dynamics AX项目中,我必须在表单中添加一个字段组,并使用给定的安全密钥保护该组。对于无法访问此安全密钥的用户,我必须显示替换文本 如何测试当前用户是否有权访问安全密钥,以便在这种情况下隐藏替换文本?您可以使用以下代码查找用户是否有权访问安全密钥: SecurityKeySet securityKeys; AccessType accessType; ; securityKeys = new SecurityKeySet(); securityKeys.loa

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


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

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

SecurityKeySet securityKeys; 
AccessType     accessType; 
; 

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

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

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');
}

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

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

我看到有人对此投了反对票。为了解释这样问这个问题的必要性,我必须明确指出谷歌搜索对我没有帮助。如果您静态地使用Dynamics AX中的安全密钥,而不是以编程方式使用它们,那么Dynamics AX中的安全密钥似乎是一个有很好文档记录的功能。为了解释这样问这个问题的必要性,我必须明确指出谷歌搜索对我没有帮助。如果您静态地使用Dynamics AX中的安全密钥,而不是以编程方式使用它们,那么Dynamics AX中的安全密钥似乎是一个有很好文档记录的功能。谢谢。好的,这正是我需要的。谢谢。测试正常,这正是我需要的。