回答
我會使用會話變量。
另一種解決辦法是具有名爲LoginAttempt(INT)(默認爲0)的用戶表中的列,我將如何使用該列
假設你有一個表,你databese與這些列稱爲向tblUsers
- 標識,
- 用戶名,
- 密碼,
- LoginAttempt。
而且假設你有你的Login.aspx頁面
TextBoxUserName
兩個文本框,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.Password
和TextBoxPassword.Text
與上述例子不符,因爲
user.Password
是ohnedich
但是TextBox.Password
是duhast
。這表示登錄不成功,因此您將虛假設置爲bool login
。
其他一切屬於下面的代碼與if-else
條件
if(user.LoginAttempt < 3){
if(!login)
{
user.LoginAttempt = user.LoginAttempt + 1;
}
else
{
user.LoginAttempt = 0;
}
}
else
{
//do something
}
要檢查用戶是否採取了行動狐狸「x」次,你需要存儲它somehwere。如果你使用的是關係數據庫,你可以調用一個LoginAttempts表,在那裏你存儲所有unsuccesfull登錄。當你有這張桌子時,你可以根據它建立你的邏輯。
+1 - 這是ASP成員是怎麼做的。 –
這是真的......他可能只是使用默認的提供者。 –
多解:
1)會話變量(好的溶液)
2)靜態類變量(不是一個好的解決方案)
3)DB記錄字段(最佳溶液)
4)在視圖和控制器之間來回傳遞標誌變量(不是一個很好的想法)。
5)瀏覽器cookie(可以清除)
不要使用靜態變量來存儲登錄嘗試的次數 - 一個值將被所有用戶共享! –
不要使用cookie,什麼阻止用戶在嘗試之間刪除該cookie! –
@Hans - 大聲笑...也許我應該在不安全和安全的做法中加入免責聲明。 –
- 1. 創建一個按鈕來執行兩次點擊操作
- 2. 如果每次用戶點擊按鈕
- 3. 執行按鈕與點擊
- 4. 當用戶點擊輸入時執行操作/按鈕
- 5. 僅在點擊兩個按鈕時才執行操作
- 6. 當點擊輸入按鈕,執行操作
- 7. 如果保存操作按鈕被點擊的jqGrid
- 8. 如何在Java中再次單擊按鈕時執行第二個操作?
- 9. Jquery:如果選中了單選按鈕A,請執行此操作。如果B是檢查,做到這一點
- 10. 如何等待按鈕單擊後執行操作?
- 11. 只要單擊按鈕,如何執行操作?
- 12. 如果重複點擊按鈕,防止執行UIButton的IBAction
- 13. 防止onblur代碼執行,如果點擊提交按鈕
- 14. 按鈕點擊時的切換操作
- 15. 特定按鈕點擊後的操作
- 16. 如何在用戶點擊Objective C中的myLocation按鈕時執行操作?
- 17. 如何通過點擊另一個按鈕java執行按鈕?
- 18. 按鈕點擊點擊事件兩次
- 19. 再次點擊按鈕點擊
- 20. 在Android SDK中執行點擊按鈕
- 21. Jquery函數執行與按鈕點擊
- 22. 執行按鈕Python腳本點擊
- 23. 點擊次數按鈕
- 24. 按鈕點擊兩次
- 25. 第一次點擊按鈕
- 26. HTML一次點擊按鈕
- 27. 通過點擊重複執行操作
- 28. 對鏈接點擊執行操作
- 29. jQuery對第二次點擊執行不同的操作?
- 30. AngularJS需要2次點擊才能執行搜索操作
這裏是什麼'user'和'login'? –
@KarsM我加了一些解釋,讓我知道你是否需要更多的幫助。好運。 – Bastardo