C# :: Aufgabe #138 :: Lösung #2
6 Lösungen

#138
Console - ReadPassword Methode
Anfänger - C#
von DrizZle
- 15.06.2016 um 13:48 Uhr
Ihr kennt sicherlich die Einstellung für die TextBox in der Windows Form in der man den User Input sofort in ein belibigen Password Char umwandeln kann (in der Regel '*'). Diese Möglichkeit hat man in der Console nicht. Die Aufgabe besteht darin jeden Tastaturschlag des Users abzufangen und in ein '*' umzuwandeln und auszugeben. Sprich ihr erstellt eure eigene Read Methode. Das Passwort soll später trotz allem als Text ausgegeben werden können.
Vorlage:
C#-Code
Vorlage:

class ReadPass { static void main(string[] args) { Console.Write("Passwort: "); string password = ReadPassword(); } string ReadPassword() { ... } }
#2

von Mexx (2370 Punkte)
- 23.07.2016 um 01:56 Uhr

using System; namespace ConsoleReadPasswort { class Program { static void Main(string[] args) { Console.WriteLine("Bitte das Passwort eingeben"); string pass = ReadPasswort(); Console.Write(string.Format("\n\nDas eingegebene Passwort lautet \"{0}\"", pass)); Console.ReadKey(); } /// <summary> /// Maskiert die Konsoleneingabe gibt den eingegebenen Text zurück. /// Die Eingabe wird solange geselsen, bis die Enter Taste gedrückt wird. /// Fehlerkorrektur mit Backspace ist möglich. /// </summary> /// <returns>Das eingegebene Passwort</returns> static private string ReadPasswort() { string pw = string.Empty; ConsoleKeyInfo keyInfo; while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Enter) { if (keyInfo.Key == ConsoleKey.Backspace && pw.Length > 0) { pw = pw.Substring(0, pw.Length - 1); int pos = Console.CursorLeft; Console.SetCursorPosition(pos - 1, Console.CursorTop); Console.Write(" "); Console.SetCursorPosition(pos - 1, Console.CursorTop); } if (keyInfo.Key != ConsoleKey.Backspace) { pw += keyInfo.KeyChar; Console.Write("*"); } } Console.Write("\n"); return pw; } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1