2011-10-13 88 views
1

如果按鈕點擊3次,我想執行一些操作。就像用戶輸入3次錯誤的密碼一樣,頁面必須被重定向到另一頁面或其他頁面。如果按鈕點擊3次,請執行操作

如何在ASP.NET C#中執行操作,如果第三次點擊按鈕?

回答

0

我會使用會話變量。

另一種解決辦法是具有名爲LoginAttempt(INT)(默認爲0)的用戶表中的列,我將如何使用該列

假設你有一個表,你databese與這些列稱爲向tblUsers

  1. 標識,
  2. 用戶名,
  3. 密碼,
  4. LoginAttempt。

而且假設你有你的Login.aspx頁面

  1. TextBoxUserName兩個文本框,
  2. TextBoxPassword

比方說,你在你向tblUsers一個記錄這樣

Id   : 1 
UserName  : rammstein 
Password  : ohnedich 
LoginAttempt : 0 

現在,你在你的Login.aspx.cs代碼

你有一個方法,並在其中你有

TblUsers user = new TblUsers(); 

而你有一個bool login = false;。 您從TextBoxUserName.Text獲得用戶名,您檢查是否存在具有此用戶名的用戶,如果存在,請執行以下代碼。

讓我們跟隨此之情況

給定用戶試圖用

UserName:rammstein 
Password:duhast 

登錄用的用戶名RAMMSTEIN經過你的數據庫,並發現了它,並把該記錄在您的TblpUsers user那麼你檢查是否user.PasswordTextBoxPassword.Text與上述例子不符,因爲

user.Passwordohnedich但是TextBox.Passwordduhast。這表示登錄不成功,因此您將虛假設置爲bool login

其他一切屬於下面的代碼與if-else條件

if(user.LoginAttempt < 3){ 

     if(!login) 
     { 
      user.LoginAttempt = user.LoginAttempt + 1; 
     } 
     else 
     { 
      user.LoginAttempt = 0; 
     } 
} 
else 
{ 
    //do something 
} 
+0

這裏是什麼'user'和'login'? –

+0

@KarsM我加了一些解釋,讓我知道你是否需要更多的幫助。好運。 – Bastardo

1

要檢查用戶是否採取了行動狐狸「x」次,你需要存儲它somehwere。如果你使用的是關係數據庫,你可以調用一個LoginAttempts表,在那裏你存儲所有unsuccesfull登錄。當你有這張桌子時,你可以根據它建立你的邏輯。

+0

+1 - 這是ASP成員是怎麼做的。 –

+0

這是真的......他可能只是使用默認的提供者。 –

0

多解:

1)會話變量(好的溶液)

2)靜態類變量(不是一個好的解決方案)

3)DB記錄字段(最佳溶液)

4)在視圖和控制器之間來回傳遞標誌變量(不是一個很好的想法)。

5)瀏覽器cookie(可以清除)

+1

不要使用靜態變量來存儲登錄嘗試的次數 - 一個值將被所有用戶共享! –

+0

不要使用cookie,什麼阻止用戶在嘗試之間刪除該cookie! –

+0

@Hans - 大聲笑...也許我應該在不安全和安全的做法中加入免責聲明。 –