Mega Code Archive

 
Categories / C# / Security
 

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);                 }             }         }     } }