我有两台机器,我们称它们为机器A和机器B.机器B运行用C#.net编写的Windows服务,作为本地系统帐户。机器A告诉机器B的服务(使用WCF)打开位于网络上的文件。由于本地系统不是网络用户,因此无法访问网络文件,也无法打开该文件。目前,我正在从机器A读取文件并将它们作为字符串序列化到机器B,然后在B上本地写入它。我考虑为机器B创建一个通用网络帐户,因此它可以访问网络,但是这样不受欢迎。有什么办法可以使用机器A的用户帐户让机器B打开文件吗?我已经看过系统安全主体的身份类,这是一个使用它们的情况吗?
答案 0 :(得分:3)
MSDN - How to: Impersonate a Client on a Service
在Windows上模拟客户端 通信基金会(WCF)服务 使服务能够执行操作 代表客户。对于行动 受访问控制列表(ACL) 检查,例如访问目录 和机器上的文件或访问 SQL Server数据库,ACL检查是 针对客户端用户帐户
另外,请不要忘记将服务配置为使用Windows身份验证并使用支持的绑定。