另一个用户的 AX 2012 R3 AIF 系统服务调用上下文
AX 2012 R3 AIF System Services Callcontext of another user
是否可以使用其他用户的调用上下文来调用 AIF 系统服务?
我特别需要获取用户有权访问哪些表。通过使用 UserSessionService
中的方法 GetAccessRights
,我可以提取我有权访问的表。
我需要为其他用户调用它,所以我尝试将 CallContext.LogonAsUser
设置为另一个用户,但出现错误:
An unhandled exception of type 'System.ServiceModel.FaultException'
occurred in mscorlib.dll
Additional information: Failed to logon to Microsoft Dynamics AX.
为了能够在自定义服务上使用 LogonAsUser,我需要在入站端口上设置 "Trusted intermediary users"。但是,似乎无法在系统服务上进行设置。
我正在 contoso 图像上对此进行测试。我以 contoso\Administrator.
身份登录
完整代码:
USSReference.UserSessionServiceClient client = new USSReference.UserSessionServiceClient();
USSReference.CallContext context = new USSReference.CallContext
{
LogonAsUser = "VishwaR"
};
USSReference.AccessControlledItemKey key = new USSReference.AccessControlledItemKey();
key.ItemType = USSReference.AccessControlledType.Table;
key.ItemName = "CUSTTABLE";
UserService.USSReference.AccessRight[] rights = client.GetAccessRights(context, new USSReference.AccessControlledItemKey[] { key });
您可以创建自定义 AIF 入站端口 并添加 AifUserSessionService.GetAccessRights
操作。
这里可以设置Allow trusted intermediary to impersonate
.
是否可以使用其他用户的调用上下文来调用 AIF 系统服务?
我特别需要获取用户有权访问哪些表。通过使用 UserSessionService
中的方法 GetAccessRights
,我可以提取我有权访问的表。
我需要为其他用户调用它,所以我尝试将 CallContext.LogonAsUser
设置为另一个用户,但出现错误:
An unhandled exception of type 'System.ServiceModel.FaultException' occurred in mscorlib.dll
Additional information: Failed to logon to Microsoft Dynamics AX.
为了能够在自定义服务上使用 LogonAsUser,我需要在入站端口上设置 "Trusted intermediary users"。但是,似乎无法在系统服务上进行设置。
我正在 contoso 图像上对此进行测试。我以 contoso\Administrator.
身份登录完整代码:
USSReference.UserSessionServiceClient client = new USSReference.UserSessionServiceClient();
USSReference.CallContext context = new USSReference.CallContext
{
LogonAsUser = "VishwaR"
};
USSReference.AccessControlledItemKey key = new USSReference.AccessControlledItemKey();
key.ItemType = USSReference.AccessControlledType.Table;
key.ItemName = "CUSTTABLE";
UserService.USSReference.AccessRight[] rights = client.GetAccessRights(context, new USSReference.AccessControlledItemKey[] { key });
您可以创建自定义 AIF 入站端口 并添加 AifUserSessionService.GetAccessRights
操作。
这里可以设置Allow trusted intermediary to impersonate
.