MakeReadOnly, RemoveAt

image_pdfimage_print
   
  


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("

Could not start Notepad process.");
                    Console.WriteLine(ex);
                }
            }
        }
    }
}

   
     


This entry was posted in Security. Bookmark the permalink.