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
