I recently stumbled upon the need to create a small console application that reads in a password from the user. Naturally, I didn't want the password to be echoed back into the console as it was typed, luckily there's a static method called ReadKey in the Console class, but in order to read a whole string, some acrobatics is required:
string ReadPassword() { string passwordString; List<char> chList = new List<char>();
ConsoleKeyInfo cki = Console.ReadKey(true);
while (cki.Key != ConsoleKey.Enter)
{ if (cki.Key == ConsoleKey.Backspace)
{ if (chList.Count > 0) chList.RemoveAt(chList.Count - 1);
}
else chList.Add(cki.KeyChar);
cki = Console.ReadKey(true);
}
passwordString = new string(chList.ToArray());
return passwordString; }

No comments:
Post a Comment