2010-06-15 4 views
0

Я хочу открыть подключенный сетевой диск из кода C#, но он защищен паролем, поэтому, когда я пытаюсь открыть его напрямую, создается исключение. Может ли кто-то пролить свет на предоставление имени пользователя и пароля при открытии этого диска? Сведения об исключении:Открыть/просмотреть защищенный паролем сетевой сетевой диск

at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start() 
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start(String fileName) 

Я просто звоню System.Diagnostics.Process.Start("Z:")

+0

Какое исключение вы получаете? –

+0

Pun предназначенный ??? – Reddog

+0

@ Реддог. Почему вы чувствуете, что это шуточный запрос? Это неподдельные вопросы @ fredrik stack trace добавлен в вопрос – Ravisha

ответ

2

Z: это не имя файла. [edit: это нормально, если он не защищен паролем, попытался выполнить ваш код, и он сработал]

В качестве параметра попробуйте использовать объект ProcessStartInfo, так как он позволяет установить имя пользователя и пароль.

И о параметре FileName из here:

Имя файла является любое приложение или документ. Документ определяется как любой тип файла, который имеет открытое или по умолчанию действие, связанное с ним. Вы можете просмотреть зарегистрированные типы файлов и связанные с ними приложения для своего компьютера, используя диалоговое окно «Параметры папки», которое доступно через операционную систему. Кнопка «Дополнительно» приводит к диалоговому окну, показывающему, есть ли открытое действие, связанное с определенным типом зарегистрированного файла.

+0

Неверно! Если вы попытаетесь получить доступ к любой другой папке для ex d: она отлично работает. Этот процесс.start() точно так же, как выполнение командной строки команды start – Ravisha

+0

Пожалуйста, посмотрите, что я добавил о параметре FileName – Rox

+0

Спасибо Rox, это то, что я искал. – Ravisha

0

Может быть, вы могли бы рассмотреть вместо открытия пути UNC, что ваш «г диск» является означает, чтобы указать. Напоминание о том, что пользователь ПК может отключить Z: и заменить его каким бы то ни было способом ...

Не совсем понятно, что вы подразумеваете под «запуском напрямую» и «открытием этого диска», но если в качестве кода snip предполагает, что вы пытаетесь запустить Explorer для папки диска, тогда вы можете использовать ProcessStartInfo в качестве механизма для предоставления учетных данных.

Если вы пытаетесь программно получить доступ к файлам на этом ресурсе, вы можете изучить термин олицетворение для запуска блоков кода доступа к файлу под разными учетными данными. Этот Accessing a Shared File (UNC) From a Remote, Non-Trusted Domain With Credentials выглядит особенно перспективным.

Если вы пытаетесь создать сетевой диск с использованием предварительно заданных учетных данных, тогда есть другое решение - https://serverfault.com/questions/47005/specifying-username-pass-as-part-of-a-unc-path-or-map-network-drives-for-a-window/47008#47008 (не забудьте отключить его после).

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