Отладка в VS как не-админ
-
05-07-2019 - |
Вопрос
Я занимаюсь разработкой для WinForms, использую XP и VS 2005 (древние, я знаю). Я хотел бы убедиться, что мое приложение может работать без прав администратора, но я слишком ленив, чтобы попытаться запустить VS без прав администратора, и я не хочу входить и выходить, чтобы протестировать мое приложение. Р>
Есть ли способ, который я могу просто отладить как не администратор? Р>
Есть ли набор атрибутов безопасности доступа к коду, которые я могу добавить к своему коду, которые заставят меня работать с тем же набором разрешений, что и у не-администратора?
Решение
Запустите VS как другого пользователя из текущего сеанса рабочего стола. См. Как включить и использовать " Запускать как " команда при запуске программ в Windows . Это означает, что вам не нужно входить и выходить. Р>
Я бы посоветовал вам просто запустить целевое приложение от имени другого пользователя через RunAs, а затем подключить отладчик VS к процессу (при необходимости) через Debug > Присоединить к процессу ... пункт меню в Visual Studio. Р>
Другие советы
Опираясь на ответ Фила, вы можете автоматизировать процесс, установив для запуска проекта:
Запустите внешнюю программу: c: \ windows \ system32 \ runas.exe
с аргументами командной строки: / noprofile / user: {MachineName} \ {UserName} {ApplicationName} .exe
К сожалению, я не думаю, что есть автоматический способ присоединить процесс к отладчику VS (из-за предупреждения безопасности), но с помощью условного вызова
#if (DEBUG)
System.Diagnostics.Debugger.Launch();
#endif
вам будет предложено подключиться к отладчику двумя щелчками мыши.
Подходя к этому с более фундаментальным изменением:
Если вы разрешите компьютеру разрешать одновременные сеансы удаленного рабочего стола ( Vista , XP , используйте Google для других), а затем инициируйте сеанс удаленного рабочего стола на 127.0.0.2, вы можете работать как совершенно другой пользователь в своей локальной системе, что позволяет вам делать все, что угодно хотел бы без необходимости переключаться между пользователями.
Обычно я работаю как пользователь без прав администратора, но инициирую сеанс удаленного рабочего стола как администратор всякий раз, когда мне нужно запустить административную задачу. Но вы можете сделать противоположное так же легко.