如何使用WCF发送用户凭据以在远程计算机上使用?

时间:2009-08-10 22:28:15

标签: c# .net wcf windows-services permissions

我有两台机器,我们称它们为机器A和机器B.机器B运行用C#.net编写的Windows服务,作为本地系统帐户。机器A告诉机器B的服务(使用WCF)打开位于网络上的文件。由于本地系统不是网络用户,因此无法访问网络文件,也无法打开该文件。目前,我正在从机器A读取文件并将它们作为字符串序列化到机器B,然后在B上本地写入它。我考虑为机器B创建一个通用网络帐户,因此它可以访问网络,但是这样不受欢迎。有什么办法可以使用机器A的用户帐户让机器B打开文件吗?我已经看过系统安全主体的身份类,这是一个使用它们的情况吗?

1 个答案:

答案 0 :(得分:3)

MSDN - How to: Impersonate a Client on a Service

  

在Windows上模拟客户端   通信基金会(WCF)服务   使服务能够执行操作   代表客户。对于行动   受访问控制列表(ACL)   检查,例如访问目录   和机器上的文件或访问   SQL Server数据库,ACL检查是   针对客户端用户帐户

另外,请不要忘记将服务配置为使用Windows身份验证并使用支持的绑定。