2012-06-15 164 views
-1

我正在做一個項目,我需要爲學校網站製作VLE系統。我正在使用visual web developer 2008,C#和一個SQL數據庫。我需要做的是當學生使用他們的用戶名和密碼登錄時,他們應該從數據庫中顯示他們的特定信息(例如SQL的課程名稱,學生ID,電子郵件和姓名等)我已經創建了登錄頁面:登錄後從數據庫中獲取用戶特定信息

protected void Button1_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString); 
    con.Open(); 
    string cmdStr = "select count (*) from Registration where UserName ='" + TextBox1.Text + "'"; 
    SqlCommand checkuser = new SqlCommand(cmdStr, con); 
    int temp = Convert.ToInt32(checkuser.ExecuteScalar().ToString()); 
    if (temp == 1) 
    { 
     String cmdStr2 = "select password from Registration where UserName ='" + TextBox1.Text + "'"; 
     SqlCommand pass = new SqlCommand(cmdStr2, con); 
     String password = pass.ExecuteScalar().ToString(); 
     con.Close(); 

     if (password == TextBox2.Text) 
     { 
      Session["New"] = TextBox1.Text; 
      Response.Redirect("secure.aspx"); 
     } 
     else 
     { 
      Label1.Visible = true; 
      Label1.Text = "Invalid Password....!!!"; 
     } 
    } 
    else 
    { 
     Label1.Visible = true; 
     Label1.Text = "Invalid UserName....!!!"; 
    } 
} 
+0

它被認爲是「壞」的專門報告「密碼無效」或「無效的用戶名」。原因在於,當他們獲得正確的用戶名時,它可以讓敵對者知道。在進行登錄功能時,有幾套最佳實踐可幫助開發人員避免常見問題,例如「不要以純文本存儲密碼」。網上搜索並不需要太多搜索。 – StarPilot

+0

將任何舊文本追加到數據庫查詢中對安全(易受SQL注入攻擊)和性能(無法重新使用查詢計劃)不利。任何人都可以用你的代碼破壞你的數據庫。執行此操作的正確方法是參數化查詢 - 有關SQL注入的一些良好背景,請參見[this](http://www.sommarskog.se/dynamic_sql.html#SQL_injection)。 – Bridge

+0

使用此參考 http://www.codeproject.com/Articles/12907/Simple-Stored-Procedures-in-NET – neo

回答

1

當您獲取用戶名時,則可以去數據集檢索關於該用戶的所有詳細信息,相應地在secure.aspx中顯示它。

意見:不要直接使用sql查詢(容易sql注入),你應該使用存儲過程.. 也不存儲在純文本密碼。 爲什麼你要爲相同的數據檢索兩次數據。

+0

我需要做的是登錄到數據庫並獲得用戶信息喜歡他/她的用戶名,電子郵件,課程詳細信息 – majed

+0

是的,我想獲取secure.aspx中的數據,但我將如何得到我不知道也許有一些查詢登錄,並獲取用戶信息在安全頁面請給如果你知道我的代碼 – majed

0

這不會解決所有的問題,但我會讀這篇文章

http://www.codehighstreet.com/Articles/overview_of_membership_and_installing_sql_membership_provider-part_1/overview_of_membership_and_installing_sql_membership_provider-part_1.aspx

您當前的用戶名和密碼的解決方案是不是很安全,在全部作爲當前存儲的密碼作爲純文本。 本文解釋瞭如何安裝和設置用戶名和密碼數據庫,並使用一些控件來處理您的身份驗證

+0

親愛的,我可以使用用戶名和密碼登錄網頁,我需要到登錄頁面,並獲得從數據庫登錄後的用戶信息不只是名稱,但也可以有課程的詳細信息等可能有一些登錄查詢從數據庫中獲取用戶信息,但我不知道這個代碼請幫助我 – majed

相關問題