SORU
4 AĞUSTOS 2010, ÇARŞAMBA


Şifre maskeleme konsol uygulaması

Aşağıdaki kodu denedim...

string pass = "";
Console.Write("Enter your password: ");
ConsoleKeyInfo key;

do
{
    key = Console.ReadKey(true);

    // Backspace Should Not Work
    if (key.Key != ConsoleKey.Backspace)
    {
        pass  = key.KeyChar;
        Console.Write("*");
    }
    else
    {
        Console.Write("\b");
    }
}
// Stops Receving Keys Once Enter is Pressed
while (key.Key != ConsoleKey.Enter);

Console.WriteLine();
Console.WriteLine("The Password You entered is : "   pass);

Ama bu şekilde geri al işlevi şifreyi yazarken çalışmıyor. Herhangi bir öneri?

CEVAP
4 AĞUSTOS 2010, ÇARŞAMBA


Console.Write("\b \b"); ekranda yıldız karakteri siler, ama pass dize değişkeni girilmiş olan karakteri siler else blok içinde herhangi bir kod yok.

Burada ihtiyacınız olan şey, yapmanız gereken ilgili kodu bölümü (if..else bölümü):

// Backspace Should Not Work
if (key.Key != ConsoleKey.Backspace && key.Key != ConsoleKey.Enter)
{
   pass  = key.KeyChar;
   Console.Write("*");
}
else
{
   if (key.Key == ConsoleKey.Backspace && pass.Length > 0)
   {
      pass = pass.Substring(0, (pass.Length - 1));
      Console.Write("\b \b");
   }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • cyriak

    cyriak

    29 Mart 2006
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011