0

是否可以使用另一个用户的调用上下文调用 AIF 系统服务?我特别需要获取用户可以访问的表。通过使用 中的方法GetAccessRightsUserSessionService我可以提取我可以访问的表。我需要为其他用户调用它,所以我尝试将其设置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 });
4

1 回答 1

0

您可以创建自定义AIF 入站端口并添加AifUserSessionService.GetAccessRights操作。在这里可以设置Allow trusted intermediary to impersonate

自定义 AIF 服务操作

于 2015-06-19T11:03:32.553 回答