Перемещение файла на другой компьютер - PullRequest
2 голосов
/ 16 сентября 2011

У меня есть проблема с моим приложением C #. Мне нужно переместить файл на мой сервер, но мой сервер защищен именем пользователя и паролем. Путь такой:

\\Server\Folder

И код такой:

...
File.Move(args[0], "\\\\Server\\Folder");
...

Как мне переместить туда файл? Пожалуйста, помогите мне.

Ответы [ 2 ]

3 голосов
/ 16 сентября 2011

Использовать олицетворение:

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsIdentity idnt = new WindowsIdentity(username, password);
WindowsImpersonationContext context = idnt.Impersonate();

File.Move(args[0], "\\\\Server\\Folder");

context.Undo();
0 голосов
/ 16 сентября 2011

Вы можете P \ Вызвать функцию Windows API WNetAddConnection2 для подключения к общему ресурсу перед копированием.

http://msdn.microsoft.com/en-us/library/aa385413(v=vs.85).aspx

Вот страница PInvoke: http://pinvoke.net/default.aspx/mpr/WNetAddConnection2.html

[DllImport ("Mpr.dll", EntryPoint = "WNetAddConnection2", CallingConvention = CallingConvention.Winapi)] частный статический extern ErrorCodes WNetAddConnection2 (NETRESOURCE lpNetResource, ref строка lpPassword, ref строка lpUsername, System.UInt32 dwFlags);

...