2014-02-05 5 views
1

Я создаю простую программу копирования файлов в нашей интрасети, чтобы пользователи могли копировать файл в определенную сетевую папку, к которой у них тоже нет доступа. Я планирую использовать функцию «CopyFile» из пространства имен «My.Computer.FileSystem», поскольку она будет использовать диалоговое окно копирования файлов Windows и индикатор выполнения. Я предполагаю, что пользователь должен иметь аутентификацию в этой папке. Я хотел бы знать, могу ли я запустить программу как аутентифицированный пользователь этой сетевой папки для копирования файла? Спасибо.Как сделать приложение в виде окон запускать как другой пользователь?

+0

Написать услугу (с достаточно привилегий), который копирует файл в папку назначения при запросе. –

+0

поиск олицетворения – VladL

+0

Как насчет WindowsIdentity.Impersonate? Будет ли это выполнять задачу без отдельной службы (или процесса, как указано ниже)? [править] Спасибо Влад, вы опубликовали прямо перед тем, как я прокомментировал. – merlot

ответ

1

Для этого вам нужно начать отдельный процесс. Вы можете использовать Process.Start (...)

http://msdn.microsoft.com/en-us/library/sxf2saat%28v=vs.110%29.aspx

EDIT:

на основе вашего комментария я сделал также быструю проверку на олицетворение. Это из сообщения Мэтта Джонсона кажется многообещающим!

https://stackoverflow.com/a/7250145/2243584

+0

Как насчет безопасности? Вы введете имя пользователя/пароль в код? –

+0

Я предполагаю, что это на самом деле то, что он/она хочет, как упоминание ", к которому у них нет доступа" – toATwork

+0

Таким образом, приложение, которое я хотел бы начать с рабочего стола, на самом деле является процессом, который я пишу, который затем запускает мою простую программу с надлежащими полномочиями? – merlot

Смежные вопросы