У меня есть приложение, которое запускает команду через Power Shell.Я знаю, как запустить это как другой пользователь, но я совершенно не понимаю, как получить пароль.Я хочу каждый раз запрашивать у пользователя пароль (я ожидаю, что приложение будет использоваться только один раз), поэтому мне не нужно его хранить.Я понимаю, что мне нужно создать пароль в качестве безопасной строки.Кроме того, я хочу, чтобы он запускался при нажатии кнопки, но я не могу понять, как вызвать это.Это то, что я до сих пор:
class Credentials
{
private static SecureString MakeSecureString(string text)
{
SecureString secure = new SecureString();
foreach (char c in text)
{
secure.AppendChar(c);
}
return secure;
}
public static void RunAs(string path, string username, string password)
{
try
{
Process process = new Process();
process.StartInfo.FileName = "powershell.exe";
process.StartInfo.UserName = "adminaccount@account.com";
process.StartInfo.Password = MakeSecureString(password);
process.StartInfo.CreateNoWindow = false;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.Start();
process.StandardInput.WriteLine(" Some Power Shell Script");
process.StandardInput.Flush();
process.StandardInput.Close();
process.WaitForExit();
Console.WriteLine(process.StandardOutput.ReadToEnd());
Console.WriteLine(process.StandardError.ReadToEnd());
Console.Read();
}
catch (Win32Exception w32E)
{
// The process didn't start.
Console.WriteLine(w32E);
}
}
}
// Later invoked in this button click handler
private void Button_Click(object sender, EventArgs e)
{
Credentials.SecureString();
Credentials.RunAs();
}
Как я могу выполнить этот запуск при нажатии кнопки (Button_Clicked).Я чувствую, что понимаю почти все, но мне не хватает чего-то очень важного.