2017-01-22 1 views
0

Also versuche ich, das Textfeld zu schützen, das zu meiner Liste hinzufügt. Wie in ich Text in das Textfeld eingeben und ein Popup nach dem Passwort fragen. Ist das möglich? Im Folgenden werde ich Codeschnipsel einfügen.Wie man ein Textfeld schützt, um die Eingabe in winform zu sichern C#

private void button6_Click_1(object sender, EventArgs e) 
     { 

      BlockList.Add (textBox2.Text);    // adds url to block list 


     } 

     private void button7_Click_1(object sender, EventArgs e) 
     { 
      BlockList.Remove(textBox2.Text); 
     } 

Antwort

1

Wenn ich Sie richtig verstanden habe, benötigen Sie einen costum Form zu schaffen, die ein Textfeld und eine Schaltfläche als eine separate Klasse hat, dann müssen Sie eine Instanz dieser Klasse erstellen und eine .showDialog() aufrufen Methode darauf dann kann der Benutzer nur etwas in den Dialog eingeben (wie eine MessageBox). Danach müssen Sie das eingegebene Passwort von Ihrer Klasse erhalten und eva- luieren, ob das Passwort korrekt ist (ich nehme an, Sie wollen nur einen "einfachen" Schutz und keinen verschlüsselten). Die einfachste Lösung, die mir in den Sinn kam, ist, Ihr Passwort an die andere Klasse zu übergeben und dann dort zu überprüfen, ob Ihr Passwort korrekt ist und ein DialogResult zurückzugeben, das Sie nur auswerten müssen. Somethig wie folgt aus (für Ihre Methode button_6_Click_1()):

const string password = "123456789"; //just an example password 

      string url = textBox1.Text; 

      // Get if the user entered the right password 
      GetPass pass = new GetPass(password); 

      // Check this with a dialog result 
      DialogResult result = pass.ShowDialog(); 

      if (result == DialogResult.OK) 
      { 
        BlockList.Add(url); 
        MessageBox.Show("Added " + url + " to blocklist."); 
        textBox1.Clear(); 

      } 

Dies würde der Code für die anderen WinForm-Klasse:

public partial class GetPass : Form 
    { 
     // Use a texBox called textBox1 and a button called btn_confirm 
     private string refPassword; 

     public GetPass(string password) 
     { 
      InitializeComponent(); 
      refPassword = password; 
     } 

     private void btn_confirm_Click(object sender, EventArgs e) 
     { 
      string password = textBox1.Text; 
      if (password.CompareTo(refPassword) == 0) 
      { 
       this.DialogResult = DialogResult.OK; 
      } 
     } 
    } 

Ich werde Sie die Arbeit der Erweiterung dies tun.

+0

@Sharabeel Sie wollen nicht überprüfen, ob die beiden Passwörter direkt übereinstimmen, aber ob ihr Hash (md5 als Beispiel) übereinstimmt, aber das ist ein fortgeschrittenes Thema. – 97hilfel

Verwandte Themen