2015-03-23 14 views
10

Ok, quindi sono nuovo di C#, ma ho già imparato un po '. Ma ho una domanda, come posso sostituire i caratteri che sono stati digitati in una console con "*" o semplicemente nasconderli completamente?Nascondere/sostituire quando si digita una password (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 :) 

Qualsiasi aiuto sarebbe apprezzato!

+1

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

risposta

17

giudicano here

password mascheramento in C# applicazione console

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

Trovato alcuni problemi con i tasti freccia ma abbastanza buono. Grazie! – 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();

Problemi correlati