Reinhard对这个问题研究了很久,也查了一些资料,整理了三种解决方案。
1、准备一台虚拟机A,A加入到了AD活动域,可以操作AX。
- PDA以远程桌面的方式,连接到虚拟机A。
- 在虚拟机上运行定制的客户端(窗体大小、按钮、图标、控件等),操作AX。
- 这样做的好处是,不用开发PDA上的客户端。
- 而是开发一个桌面应用,该桌面应用根据PDA的屏幕大小和操作方式做了定制。
2、使用可信中介和声明用户。
- 客户端机器C,可信中介机器B ,AX服务端 A。
- 在AX上发布增强入站端口A.1,可信用户选项中,选择B机器的登录账户GuyB。
- 在AX中,新建声明用户GuyC,给GuyC赋角色权限。
- B机器上登录的AD活动域账户为 GuyB, 能操作AX 。
- 在B上创建服务,服务中调用AX的服务A.1,发布服务B.1,供A调用。
- C上的客户端以声明用户身份GuyC,调用B的服务。
- 这样客户端机器C,通过可信中介B ,与AX通信,好处是将权限管理纳入到了AX中。
3、不使用可信中介和声明用户
- 与方案2类似,只是简单的使用中介B,转发服务。权限不能纳入到AX中管理。
后续:后来Reinhard发现无论外部程序所在的电脑是有没有入域中都可以,只要将调用服务的时候设置正确的NetworkCredential即可。