別のユーザーの呼び出しコンテキストを使用して AIF システム サービスを呼び出すことはできますか? 特に、ユーザーがアクセスできるテーブルを取得する必要があります。のメソッドを使用して、GetAccessRights
アクセスUserSessionService
できるテーブルを抽出できます。他のユーザーに対してこれを呼び出す必要があるため、CallContext.LogonAsUser
別のユーザーに設定しようとしましたが、エラーが発生しました:
タイプ 'System.ServiceModel.FaultException' の未処理の例外が mscorlib.dll で発生しました
追加情報: 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 });