2015-03-23 8 views
10

Ok, więc jestem nowy w C#, ale już się trochę nauczyłem. Ale mam jedno pytanie, jak wymienić znaki, które są wpisane w konsoli z "*" lub po prostu je całkowicie ukryć?Ukryj/zamień podczas wpisywania hasła (C#)

 var pw = "eric123"; 
     Console.WriteLine("Password: "); 
     var value = Console.ReadLine(); 
     if (value == pw) 
     { 
      Console.WriteLine("Permitted, Play online? (Y/N)?"); 
      var getGameOnlineStatus = Console.ReadLine(); 

      //Rest Of the Code is just for me :) 

Każda pomoc będzie doceniona!

+1

http://www.c-sharpcorner.com/forums/thread/32102/password -in-C-Sharp-console-application.aspx –

Odpowiedz

17

Znaleziona here

hasło maskujących w C# aplikacji konsoli

class PasswordExample 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Pls key in your Login ID"); 
      var loginid = Console.ReadLine(); 
      Console.WriteLine("Pls key in your Password"); 
      var password = ReadPassword(); 
      Console.Write("Your Password is:" + password); 
      Console.ReadLine(); 
     } 


    public static string ReadPassword() 
     { 
      string password = ""; 
      ConsoleKeyInfo info = Console.ReadKey(true); 
      while (info.Key != ConsoleKey.Enter) 
      { 
       if (info.Key != ConsoleKey.Backspace) 
       { 
        Console.Write("*"); 
        password += info.KeyChar; 
       } 
       else if (info.Key == ConsoleKey.Backspace) 
       { 
        if (!string.IsNullOrEmpty(password)) 
        { 
         // remove one character from the list of password characters 
         password = password.Substring(0, password.Length - 1); 
         // get the location of the cursor 
         int pos = Console.CursorLeft; 
         // move the cursor to the left by one character 
         Console.SetCursorPosition(pos - 1, Console.CursorTop); 
         // replace it with space 
         Console.Write(" "); 
         // move the cursor to the left by one character again 
         Console.SetCursorPosition(pos - 1, Console.CursorTop); 
        } 
       } 
       info = Console.ReadKey(true); 
      } 
      // add a new line because user pressed enter at the end of their password 
      Console.WriteLine(); 
      return password; 
     } 
    } 
+0

Masz problemy z klawiszami strzałek, ale wystarczająco dobrze. Dzięki! – Waescher

0
public static string HideCharacter() 
    { 
     ConsoleKeyInfo key; 
     string code = ""; 
     do 
     { 
      key = Console.ReadKey(true); 

      if (Char.IsNumber(key.KeyChar)) 
      { 
        Console.Write("*"); 
      } 
      code += key.KeyChar; 
     } while (key.Key != ConsoleKey.Enter); 

     return code; 

    } 

password = HideCharacter();

Powiązane problemy