同时冒充多个用户

时间:2015-08-20 08:21:42

标签: c# .net impersonation

我在.net中提供服务,将文件从一个域(域A)复制到其他域(域B) 两个域都需要凭据才能连接到它们,所以我使用模拟。

t1

模拟每次只对一个域起作用,所以实际上我无法工作如何同时模拟两个域以复制文件 所以我试试这个:

using (new Impersonator(usr_name_source, domain_source, password_source))

但是当我冒充内部using (new Impersonator(usr_name_source, domain_source, password_source))//server authentication { using (new Impersonator(usr_name_target, domain_target, password_target))//server authentication { DeleteOldFiles(targetPath); Copy(sourcePath, targetPath); } }

时它不起作用

它忘记了外面的模仿。

如果没有映射驱动器等,有没有人知道如何做到这一点......?

1 个答案:

答案 0 :(得分:1)

您一次只能模仿一个用户,因此您当前的解决方案将无效。基本上您正在尝试连接两个不同的网络资源。您可以P / Invoke WNetAddConnection2功能连接到不同域的网络资源并根据需要执行操作。有关WNetAddConnection2的详细信息,请参阅此处:https://msdn.microsoft.com/en-us/library/windows/desktop/aa385413(v=vs.85).aspx

阅读这篇文章,看看你如何调用WNetAddConnection2:How to provide user name and password when connecting to a network share