2017-02-19 53 views
0

我已經創建了一個通過數據庫進行密碼認證的表單。不過,我不想要一個登錄函數,我只想通過在主窗體中點擊一個按鈕來驗證對其他窗體的訪問。那麼我怎樣才能調用密碼錶單來驗證對按鈕點擊的其他表單的訪問?如何使用主窗體中的按鈕單擊其他窗體上的密碼錶單?

密碼形式:

public partial class GetPass : Form 
{ 
    SqlConnection con = new SqlConnection(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=BooyaaBrowser;Integrated Security=True"); 

    private TextBox PasstextBox; 
    private Button btn_confirm; 
    private Label EnterPass; 

    public GetPass() 
    { 
     InitializeComponent(); 
    } 

    private void btn_confirm_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      SqlDataAdapter sdf = new SqlDataAdapter ("select count (*)from password where password = '" + PasstextBox.Text + "'",con); 
      DataTable dt = new DataTable(); 
      sdf.Fill(dt); 
      if (dt.Rows[0][0].ToString() == "1") 
      { 
       MessageBox.Show("Password correct"); 
       this.Hide(); 
      } 
      else 
      { 
       MessageBox.Show("Booyaa Says Wrong Password", "Wrong Password", MessageBoxButtons.OK, MessageBoxIcon.Hand); 
      } 
     } 
     catch (Exception ex) 
     { 
MessageBox.Show(ex.Message, "Error Messaage "); 
      } 
     } 

一個按鈕單擊表格:

private void Blocklist_Click(object sender, EventArgs e) 
{ 
    Blocklist frm1 = new Blocklist(); 
    frm1.Show(); 
} 
+1

從來沒有密碼儲存在純文本彈出的形式。並且您正在請求SQL注入攻擊! –

+0

@ DanielA.White密碼是簡單地阻止孩子們最多10個// 11歲孩子,因爲這是一個兒童瀏覽器,所以密碼停止訪問父母工具。因此,沒有敏感數據或任何這類事情的威脅。 –

+1

不要太累,看看那些令人敬畏的emtpy catch子句。 –

回答

2

爲了避免混淆,我使用的MainForm的PopupForm類和Program.cs文件作出的MainForm首先加載。

private void MainForm_Load(object sender, EventArgs e) 
    { 
     PopupForm popup = new PopupForm(); 
     popup.FormClosing += (o, i) => { 
      if (!popup.passwordFound) 
       this.Close(); 
     }; 
     popup.ShowDialog(); 
    } 

,並在具有PasstextBox和btnCheckPassword

public bool passwordFound = false; 
public void btnCheckPassword_Click(object sender, EventArgs e) 
{ 

    // your sql actions: 
    try 
    { 
     SqlDataAdapter sdf = new SqlDataAdapter ("select count (*)from password where password = '" + PasstextBox.Text + "'",con); 
     DataTable dt = new DataTable(); 
     sdf.Fill(dt); 
     if (dt.Rows[0][0].ToString() == "1") 
     { 
      MessageBox.Show("Password correct"); 
      this.Hide(); 
      passwordFound = true; 
      // this.Close() you can also. 
     } 
     else 
     { 
      MessageBox.Show("Booyaa Says Wrong Password", "Wrong Password", MessageBoxButtons.OK, MessageBoxIcon.Hand); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message, "Error Messaage "); 
    } 
} 
+0

我在「.Text」下面得到一個錯誤,說對象不包含定義。 –

+0

你的意思是'PasstextBox.Text'? –

+0

是的,儘管我使用公共對象PasstextBox {get;私人設置; } –

相關問題