Сетевая копия файла в .NET - PullRequest
       18

Сетевая копия файла в .NET

2 голосов
/ 18 октября 2011

У меня есть коробка Ubuntu, на которой открыт общий доступ к Samba. Я могу получить к нему доступ через \ ip-адрес, поэтому я знаю, что у меня есть полный доступ к нему.

Из моего приложения я пробую следующее, но оно не будет работать через IP-адрес, только DNS-имя.

// val = ip address
File.Copy("\\\\" + val + "\\share\\vSphere\\vSphere.exe", Temp + "vSphere.exe", true);

Мне нужно использовать IP-адрес, поскольку люди, которые подключаются к VPN, не смогут получить от программы доступ к DNS-имени только по IP-адресу.

1 Ответ

2 голосов
/ 18 октября 2011

Сначала попробуйте указать IP-адрес, как показано ниже

File.Copy(@"\\192.100.1.23\share\vSphere\vSphere.exe", Path.combine(Temp ,"vSphere.exe"), true);

если ошибка существует, попробуйте использовать олицетворение, введите имя пользователя и пароль

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

WindowsIdentity idnt = new WindowsIdentity(username, password);

WindowsImpersonationContext context = idnt.Impersonate();

File.Copy(@"\\192.100.1.23\share\vSphere\vSphere.exe", Path.combine(Temp ,"vSphere.exe"), true);

context.Undo();
...