iT邦幫忙

0

C#的帳號密碼驗證的寫法

c#

我有兩個表單form1跟form2跟一個SQL資料庫mydata.mdf(只有一個表單有兩個欄位一個帳號一個密碼)。
form2有兩個textbox,一個做新增帳號一個做新增密碼然後再加入一個button,我把新增密碼連結到資料表的帳號,新增密碼連結到資料表的帳號,當我按下BUTTON就會新增一組帳密。

當我執行此程式時會先執行form2的formload呼叫form1來進行驗證帳密,form1一樣有兩個textbox跟一個BUTTON分別要輸入帳號跟密碼當我按下按鈕就會進行驗證帳密是否正確,如果正確就會進入form2可以新增帳密。

問題一:在form2要做binding source到mydata.mdf而form2的兩個欄位要連繫到資料表的兩個欄位,那form1要做這些動作嗎??

問題二:當我按下form1的BUTTON要驗證form1所輸入的帳號跟密碼是否跟資料庫的一樣,這邊要怎麼寫??

2
sam0407
iT邦高手 1 級 ‧ 2012-09-05 09:27:14
最佳解答

問題一:不用
問題二:作法很多種,如果您在Form2儲存密碼時沒有作加密,那就下SQL指令至資料庫取出該帳號的密碼作字串比對,相同則驗證通過
以上是最簡單的作法,作練習這樣應該就夠了,但放到真實系統上建議要考慮資安問題,要加強使用者輸入資料的過濾(防止SQL Injection)及Kradark大所提到的加密驗證部份。

4
player
iT邦大師 1 級 ‧ 2012-09-04 18:41:25

問題不明確, 你是要問WindowForm 還是 WebForm ?

如果是WebForm
在ASP.NET下, 常用 Login 控制項做帳號登入的驗證
如果你不要用 ASP.NET 預設的帳號驗證
也可以在Login 控制項用 OnAuthenticate 去接自訂的帳號驗證
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
//你自己用ADO.NET去存取你的資料庫, 做帳號驗證

//如果帳號驗證成功就 e.Authenticated = true;
//如果帳號驗證成功就 e.Authenticated = faase;
}

2
kradark
iT邦好手 1 級 ‧ 2012-09-04 22:05:23

記得使用單向加密函式

sam0407 iT邦高手 1 級 ‧ 2012-09-05 09:15:34 檢舉

別搞樓主了,他要的應該只是要將帳密寫入資料庫,再由資料庫取出帳密資料比對,明碼儲存應該就夠了。

kradark iT邦好手 1 級 ‧ 2012-09-05 10:06:50 檢舉

@@,密碼看光光 資安漏洞 會被笑的

我要發表回答

立即登入回答