.Net Core application console comment cacher la saisie d’un mot de passe

Je travaillais sur une application console (CLI) faite en .Net Core et je me suis demandé :
Mais comment faire pour que la saisie d’un mot de passe dans la console soit comme sur Linux, c’est-à-dire que la saisie ne s’affiche pas dans la console ?

En fait c’est d’une simplicité déconcertante

private string AskForPassword()
{
    Console.Write("Veuillez saisir votre mot de passe : ");

    string password = "";
    ConsoleKeyInfo info = Console.ReadKey(true);
    while (info.Key != ConsoleKey.Enter)
    {
        if (info.Key != ConsoleKey.Backspace)
        {
            password += info.KeyChar;
            info = Console.ReadKey(true);
        }
        else if (info.Key == ConsoleKey.Backspace)
        {
            if (!string.IsNullOrEmpty(password))
            {
                password = password.Substring
                (0, password.Length - 1);
            }
            info = Console.ReadKey(true);
        }
    }

    return password;
}

Source du code

Publié dans .Net Core

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*