C#使用其他域/用户名/密码将文件复制到另一个目录

时间:2010-04-30 13:47:30

标签: c# file copy dns username

在c#2008中, 我正在尝试将文件复制到目标路径(例如\ newserver \ destinationFolder),该路径可以在另一个域中,也可以使用与当前用户不同的用户名/密码。如何在执行File.Copy(...)之前指定这些新的网络凭据?

谢谢!

3 个答案:

答案 0 :(得分:2)

好问题,但我不认为这是可能的。我相信从一个域到另一个域(没有信任设置)的这种类型的文件复制将被视为安全漏洞。

一些选项:

  1. 在域之间设置信任并授予当前用户权限
  2. 您可以尝试使用Shell执行命令,看看是否可以通过命令行参数使其工作。我在想“网络使用”命令。

答案 1 :(得分:1)

查看LogonUser。这是它的pinvoke页面:

http://www.pinvoke.net/default.aspx/advapi32.logonuser

答案 2 :(得分:0)

MapDrive =>将文件复制为本地用户=> UnmapDrive。看看here

    protected int MapDrive(){
        NETRESOURCEA[] resources = new NETRESOURCEA[1];
        resources[0] = new NETRESOURCEA();
        resources[0].dwType = 1;
        int dwFlags = 1;
        resources[0].lpLocalName = _DriveLetter;
        resources[0].lpRemoteName = _Path;
        resources[0].lpProvider = null; 
        int ret = WNetAddConnection2A(resources, null, null, dwFlags);
        return ret;
    }

    protected int UnmapDrive()
    {
        int ret = WNetCancelConnection2A(_DriveLetter, 0, true);
        return ret;
    }