是否可以使用另一个用户的调用上下文调用 AIF 系统服务?我特别需要获取用户可以访问的表。通过使用 中的方法GetAccessRights
,UserSessionService
我可以提取我可以访问的表。我需要为其他用户调用它,所以我尝试将其设置CallContext.LogonAsUser
为另一个用户,但出现错误:
mscorlib.dll 中出现“System.ServiceModel.FaultException”类型的未处理异常
附加信息:无法登录 Microsoft Dynamics AX。
为了能够在自定义服务上使用 LogonAsUser,我需要在入站端口上设置“受信任的中间用户”。但是,似乎无法在系统服务上进行设置。
我正在 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 });