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

6 Lösungen Lösungen öffentlich
#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:
Quellcode ausblenden C#-Code
class ReadPass
{
    static void main(string[] args)
	{
	    Console.Write("Passwort: ");
	    string password = ReadPassword();
	}
	string ReadPassword()
	{
	    ...
	}
}
#2
2x
vote_ok
von Mexx (2370 Punkte) - 23.07.2016 um 01:56 Uhr
Quellcode ausblenden C#-Code
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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben