我在.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);
}
}
它忘记了外面的模仿。
如果没有映射驱动器等,有没有人知道如何做到这一点......?
答案 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