MakeReadOnly, RemoveAt
using System; using System.Security; using System.Diagnostics; class MainClass { public static SecureString ReadString() { SecureString str = new SecureString(); ConsoleKeyInfo nextChar = Console.ReadKey(true); while (nextChar.Key != ConsoleKey.Enter) { if (nextChar.Key == ConsoleKey.Backspace) { if (str.Length > 0) { str.RemoveAt(str.Length - 1); Console.Write(nextChar.KeyChar+" " +nextChar.KeyChar); } else { Console.Beep(); } } else { str.AppendChar(nextChar.KeyChar); Console.Write("*"); } nextChar = Console.ReadKey(true); } str.MakeReadOnly(); return str; } public static void Main() { string user = "user1"; Console.Write("Enter the user's password: "); using (SecureString pword = ReadString()) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "notepad.exe"; startInfo.UserName = user; startInfo.Password = pword; startInfo.UseShellExecute = false; using (Process process = new Process()) { process.StartInfo = startInfo; try { process.Start(); } catch (Exception ex) { Console.WriteLine("\n\nCould not start Notepad process."); Console.WriteLine(ex); } } } } }