Вызов Process.Start с неверными учетными данными - PullRequest
1 голос
/ 27 июня 2011

Что произойдет, если я позвоню Process.Start с недействительными учетными данными (т. Е. Паролем)? Я получаю Win32Exception, но мне это не кажется правильным. Однако документация предполагает, что она не предназначена для сообщения об ошибках учетных данных. Это функция безопасности?

1 Ответ

3 голосов
/ 27 июня 2011

Нет, Win32Exception правильно. Если вы посмотрите немного больше на документацию MSDN :

Произошла ошибка при открытии соответствующего файла.

-или-

Сумма длины аргументов и длины полного пути к связанному файлу превышает 2080. Сообщение об ошибке, связанное с этим исключением, может быть одним из следующих: «Область данных, переданная системному вызову, слишком маленький." или «Доступ запрещен».

Акцент мой.

Я бы сказал, что это не очень ясно. Глядя на код с отражателем, похоже, согласен с документацией.

EDIT

Некоторые детали сантехники ..

Process.Start будет выброшено Win32Exception по многим причинам; довольно много, если что-то пойдет не так, начиная процесс. Внутренне .NET называется CreateProcessWithLogonW, и в случае сбоя он создает исключение Win32Exception и устанавливает для свойства NativeErrorCode значение, которое вернуло GetLastWin32Error. Вы можете определить, почему он был брошен, посмотрев на этот код. Здесь есть поиск значения каждого кода здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...