C# copy file to another directory using other domain/username/password

In c# 2008, I'm trying to copy a file to a destination path (for example newserverdestinationFolder), that can be in another domain or using a different username/password than the current user. How can I specify these new network credentials before doing the File.Copy(...) ?

Thank you!


Good question but I dont think this is possible. I believe this type of file copy from one domain to another ( where there is not a trust set up) would be considered security hole.

Some options:

  • Set up a trust between the domains and give rights to the current user
  • You could try a Shell execute command and see if you can make this work through command line parameters. I was thinking "Net use" command.

  • Look at LogonUser. Here's the pinvoke page for it:

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


    MapDrive => Copy files as local user => UnmapDrive. Take a look 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;
        }
    
    链接地址: http://www.djcxy.com/p/920.html

    上一篇: NSFetchedResultsController部分本地排序

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