Отладка в VS как не-админ - PullRequest
1 голос
/ 07 марта 2009

Я занимаюсь разработкой WinForms, использую XP и VS 2005 (древние, я знаю). Я хотел бы убедиться, что мое приложение может работать без прав администратора, но я слишком ленив, чтобы попытаться запустить VS без прав администратора, и я не хочу входить и выходить, чтобы протестировать мое приложение.

Есть ли способ, который я могу просто отладить как не администратор?

Есть ли набор атрибутов безопасности доступа к коду, которые я могу добавить к своему коду, которые заставят меня работать с тем же набором разрешений, что и у не-администратора?

Ответы [ 3 ]

2 голосов
/ 07 марта 2009

Запустите VS как другого пользователя из вашего текущего сеанса рабочего стола. См. Как включить и использовать команду «Запуск от имени» при запуске программ в Windows . Это означает, что вам не нужно входить и выходить.

Я бы предложил, чтобы вы просто запустили целевое приложение от имени другого пользователя через RunAs, а затем подключили отладчик VS к процессу (при необходимости) через пункт меню Debug> Attach To Process ... в Visual Studio.

0 голосов
/ 11 августа 2010

Подходя к этому с более фундаментальным изменением:

Если вы разрешите компьютеру разрешать одновременные сеансы удаленного рабочего стола ( Vista , XP , используйте Google для других), а затем начните сеанс удаленного рабочего стола с 127.0.0.2, вы можете запускать от имени другого пользователя в вашей локальной системе, что позволяет вам делать все, что вы хотите, без необходимости переключаться между пользователями.

Обычно я работаю как пользователь без прав администратора, но инициирую сеанс удаленного рабочего стола как администратор всякий раз, когда мне нужно запустить административную задачу. Но вы можете сделать противоположное так же легко.

0 голосов
/ 11 марта 2009

Опираясь на ответ Фила, вы можете автоматизировать процесс, установив для запуска проекта:

Запустить внешнюю программу: c:\windows\system32\runas.exe

с аргументами командной строки: /noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe

К сожалению, я не думаю, что существует автоматический способ присоединить процесс к отладчику VS (из-за предупреждения безопасности), но с помощью условного вызова

#if (DEBUG) 
    System.Diagnostics.Debugger.Launch();
#endif

Вам будет предложено подключиться к отладчику двумя щелчками мыши.

...