C # скопировать файл в другой каталог, используя другой домен / имя пользователя / пароль - PullRequest
7 голосов
/ 30 апреля 2010

В с # 2008, Я пытаюсь скопировать файл в путь назначения (например, \ newserver \ destinationFolder), который может находиться в другом домене или использовать другое имя пользователя / пароль, чем текущий пользователь. Как я могу указать эти новые сетевые учетные данные перед выполнением File.Copy (...)?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 30 апреля 2010

Хороший вопрос, но я не думаю, что это возможно. Я считаю, что копирование файлов этого типа из одного домена в другой (где не установлено доверие) будет рассматриваться как дыра в безопасности.

Некоторые опции:

  1. Настройка доверия между доменами и предоставление прав текущему пользователю
  2. Вы можете попробовать выполнить команду Shell и посмотреть, сможете ли вы сделать это с помощью параметров командной строки. Я думал, команда «Net use».
1 голос
/ 30 апреля 2010

Посмотрите на LogonUser. Вот для этого страница pinvoke:

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

0 голосов
/ 30 апреля 2010

MapDrive => Копировать файлы как локальный пользователь => UnmapDrive. Взгляните здесь :

    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;
    }
...