Я тестирую небольшую служебную программу. Он ведет себя по-разному в зависимости от того, выполняется ли он с правами администратора или нет. Поэтому моя тестовая среда должна вызывать программу как с правами администратора, так и без нее, чтобы убедиться, что она ведет себя правильно.Запуск внешнего двоичного кода как другого пользователя
Тестирование основы написано на C#. Наш CI-сервер будет проходить тест в полночь каждый день, так что это неплохие высказывания о подтверждении доступа или аналогичные данные; там не будет человека, чтобы нажать кнопку или ввести учетные данные. Я предпочел бы избежать необходимости хранить пароль администратора, если это возможно.
С чего начать? Похоже, ProcessStartInfo
может принимать имя пользователя, домен и пароль, но для этого требуется, чтобы пароль администратора был скомпилирован в тестовую среду. (Как , что будет работать на более чем одном компьютере!) Я также видел ответы, которые говорят что-то о WindowsIdentity
и олицетворении - но это похоже на изменение идентификатора пользователя текущего процесса, а не внешнего процесса, который Я пытаюсь вызвать.
можно хранить пароль в ваш инструмент CI и оттуда передайте его на тестирование и используйте в ProcessStartInfo, например в TeamCity 7 есть параметр [пароль] (http://confluence.jetbrains.com/display/TCD7/Typed+Parameters) – TomT