2013-06-16 4 views
-1

Comment puis-je dire au programme d'autoriser l'accès uniquement si j'ai saisi le mot de passe correct?Accès accordé et refusé

Merci.

namespace Password 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     Console.WriteLine("Please enter password:"); 
     Console.ReadLine(); 



     string Password = "Test"; 
     bool PassWordMatch; 

     PassWordMatch = Password == "Test"; 

     if (PassWordMatch) 
     { 

      Console.WriteLine(" Password Match. Access Granted"); 

     } 
     else 
     { 
      Console.WriteLine("Password doesn't match! Access denied."); 

     } 

    } 
} 

}

+1

Pour la petite histoire: ce n'est pas une sécurité robuste. N'importe qui qui voulait vraiment "in" pouvait simplement voir l'IL pour voir quel est le mot de passe attendu, ou si vous le rendiez plus compliqué (seulement le hash, etc) ils pourraient le décompiler, * changer l'IL * et le recompiler. Si cela est seulement destiné à empêcher les utilisateurs les plus démotivés, alors bien. Ça ne va pas garder un bon développement. –

+0

Veuillez ne pas le faire si vous essayez de sécuriser quoi que ce soit de valeur réelle dans une application réelle. –

Répondre

0

Vous n'avez pas affecté la chaîne de lecture à une variable, elle est donc indisponible pour la comparaison. La fonction peut être utilisée pour lire la ligne de caractères suivante à partir du flux d'entrée ou renvoie null s'il n'y a plus de lignes disponibles.

Vous pouvez le faire comme ci-dessous:

namespace Password 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Please enter password:"); 
      string password = Console.ReadLine(); //Assign user-entered password 
      bool passWordMatch; 

      passWordMatch = password == "Test"; 

      if (passWordMatch) 
      { 
       Console.WriteLine(" Password Match. Access Granted"); 
      } 
      else 
      { 
       Console.WriteLine("Password doesn't match! Access denied."); 
      } 
     } 
    } 
} 
1

Vous pouvez utiliser la méthode Console.ReadLine qui renverra la valeur saisie par l'utilisateur et vous pouvez stocker dans la variable correspondante:

namespace Password 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Please enter password:"); 
      string password = Console.ReadLine(); 
      bool passWordMatch; 

      passWordMatch = password == "Test"; 

      if (passWordMatch) 
      { 
       Console.WriteLine(" Password Match. Access Granted"); 
      } 
      else 
      { 
       Console.WriteLine("Password doesn't match! Access denied."); 
      } 
     } 
    } 
} 
1

Vous presque. La méthode lit la ligne d'entrée standart et la renvoie string. Vous avez juste besoin d'assing ce que cette méthode retourne nouvelle chaîne et comparez votre mot de passe de test.

Console.WriteLine("Please enter password:"); 
string input = Console.ReadLine(); 

bool PassWordMatch = input == "Test"; 
if(PassWordMatch) 
    Console.WriteLine(" Password Match. Access Granted"); 
else 
    Console.WriteLine("Password doesn't match! Access denied."); 

Et bien sûr, ce n'est pas un bon moyen de sécurité dans votre application.

+0

Merci beaucoup –

+0

@ DARK-SPIRIT Vous êtes les bienvenus ';)' –