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
1815136

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.