none
c# запуск стороннего приложения с подкидованием логина и пароля

    Вопрос

  • Доброго времени суток, имеется программа требующая привилегий Администратора для запуска, дать пароли от админа не имеется возможности, необходимо сделать программку с подкидыванием логина и пароля, кто подскажет?

    Нашел такой пример

     private void button1_Click(object sender, EventArgs e, string command)
            {
                var processInfo = new ProcessStartInfo
                {
                    WorkingDirectory = @"Путь до дериктории где лежит exe файл",
                    FileName = "файл.exe",
                    UserName = "Имя пользователя",
                    Password = "пароль",
                    Domain = "Домен",
                    UseShellExecute = false,
                };
                Process.Start(processInfo);
            }
        }

    20 декабря 2018 г. 0:00

Ответы

  • Не нужно так делать. Зашивание пароля администратора в коде программы фактически эквивалентно выдаче этого пароля пользователям, достать его оттуда ужасно просто. Кроме того, мы в 2018 году, все ПО, которое не может жить без прав администратора устарело как минимум 10 лет назад, когда завершился переход от XP к Vista/7 с их новой моделью безопасности. Так что делать это скорее всего нет необходимости. 

    Решите проблему нормально, настройкой прав в ACL файлов, ключей реестра и т.п. таким образом, чтобы программа не требовала прав администратора. Если вы не знаете, какие именно ACL нужно настраивать, используйте Process Monitor, чтобы отследить, к чему именно обращается программа. Если помимо запуска от имени администратора требуются повышенные привилегии UAC, вынесите соответствующий код в назначенное задание, запускаемое с повышенными привилегиями.  

    Если вы все же хотите это сделать, то приведенный вами код на первый взгляд рабочий (что именно с ним не так?)

    24 декабря 2018 г. 17:37

Все ответы

  • "с подкидыванием" - это как, хранить в коде?

    Сделаем содержимое сообщества лучше, вместе!

    20 декабря 2018 г. 8:35
    Модератор
  • Не нужно так делать. Зашивание пароля администратора в коде программы фактически эквивалентно выдаче этого пароля пользователям, достать его оттуда ужасно просто. Кроме того, мы в 2018 году, все ПО, которое не может жить без прав администратора устарело как минимум 10 лет назад, когда завершился переход от XP к Vista/7 с их новой моделью безопасности. Так что делать это скорее всего нет необходимости. 

    Решите проблему нормально, настройкой прав в ACL файлов, ключей реестра и т.п. таким образом, чтобы программа не требовала прав администратора. Если вы не знаете, какие именно ACL нужно настраивать, используйте Process Monitor, чтобы отследить, к чему именно обращается программа. Если помимо запуска от имени администратора требуются повышенные привилегии UAC, вынесите соответствующий код в назначенное задание, запускаемое с повышенными привилегиями.  

    Если вы все же хотите это сделать, то приведенный вами код на первый взгляд рабочий (что именно с ним не так?)

    24 декабря 2018 г. 17:37