В c# 2008 я пытаюсь скопировать файл в целевой путь (например, \newserver\destinationFolder), который может быть в другом домене или использовании другого имени пользователя/пароля, чем текущий пользователь. Как я могу указать эти новые сетевые учетные данные прежде, чем сделать Файл. Копия (...)?
Спасибо!
Хороший вопрос, но я не думаю, что это возможно. Я считаю, что такой тип копирования файлов из одного домена в другой (где нет доверительных отношений) будет считаться дырой в безопасности.
Некоторые варианты:
Посмотрите на LogonUser. Вот страница pinvoke для него:
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;
}