我正在創建一個新的應用程序..我創建了一個登錄頁面成功..現在我需要修改登錄頁面..只有3次嘗試只允許用戶..如果用戶錯誤地進入密碼超過3次(5分鐘內)他的帳戶必須被屏蔽..並且必須顯示錯誤消息,因爲您無法訪問您的網頁..請分享您的想法...登錄 - 只允許3次嘗試
回答
只需添加一個int列用戶表稱爲FailedLogins
。每當它失敗時計算一次,如果計數器較大,那麼3不允許從該賬戶進行任何登錄。
編輯:如果你想在一定時間後的嘗試重置後,您必須添加一個日期時間列(FE LastFailedLogin
),並檢查是否有足夠的時間已經過去了,允許進一步的嘗試和/或重置計數器。
您將需要使用Membership.MaxInvalidPasswordAttempts屬性來跟蹤登錄嘗試。
這裏有顯示錯誤信息的工作代碼示例:
多少用戶,我們談論,在這裏? 1?數百?
如果只有一個,您可以創建一個靜態的int變量和靜態的DateTime變量。程序啓動時,將int nTries設置爲0,將DateTime staticDate設置爲Now。
每次顯示登錄屏幕時,檢查nTries < MAX_TRIES和timeSpan < 5分鐘。如果timeSpan大於5分鐘,請將nTries設置爲0並將staticDate更新爲Now。
如果您喜歡使用文本文件進行讀/寫,您還可以輕鬆讀取/寫入文本文件的嘗試次數。在這種情況下,如果只有少數用戶的小應用程序(避免數據庫開銷),則每個用戶可以有一行。
如果您有數百個用戶,那麼您需要使用數據庫。在該數據庫中,您可以存儲每個用戶,他最後一次登錄嘗試的時間戳,以及他擁有的嘗試次數。
使用MembershipProvider並在您的web.config中,在system.web中,您可以配置嘗試次數和超時次數。根據您的要求設置maxInvalidPasswordAttempts =「3」和passwordAttemptWindow =「5」。
<membership defaultProvider="MyMembershipProvider">
<providers>
<clear/>
<add name="MyMembershipProvider"
type="MyMembershipProvider"
autogenerateschema="true"
connectionStringName="MyConnectionString"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="false"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="3"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="1"
passwordAttemptWindow="5"
passwordStrengthRegularExpression=""
applicationName="/" />
</providers>
</membership>
這將需要一些配置,但是在正確配置(甚至有roleprovider)默認asp.net登錄控件幾乎可以處理你的一切,甚至是PasswordRecovery和CreateUserWizard控件。 MembershipProvider將自動生成用戶註冊所需的全部表格。
數據庫可以是mdb文件,ms sqlserver或mysql數據庫。
您可以使用此代碼,
//if login failed
if (session["loginclient"] != null)
{
if(Convert.ToInt32(session["loginclient"]) == 3)
Response.Redirect("Forgetpassword.aspx")
else
session["loginclient"] = Convert.ToInt32(session["loginclient"]) + 1
}
else
{
session["loginclient"] = 1;
}
- 1. 登錄只允許3 attemts
- 2. 允許3次嘗試在遊戲 - PHP
- 3. 什麼是允許用戶只有三次嘗試登錄的代碼?
- 4. 用戶窗體登錄嘗試計數器,3次嘗試
- 5. Facebook登錄嘗試登錄首次
- 6. 一次只允許每個用戶一次登錄
- 7. 只允許在用戶登錄
- 8. 春季安全只允許oauth登錄
- 9. MVC 5只允許外部登錄
- 10. 我應該允許多次登錄嗎?
- 11. 不要允許用戶多次登錄
- 12. 只允許一次
- 13. 只允許在nodejs中使用json web令牌一次登錄
- 14. 只允許在NodeJS中一次從一臺設備登錄
- 15. 以PHP記錄登錄嘗試次數
- 16. Facebook登錄與解析只允許開發者登錄
- 17. ASP.NET登錄嘗試登錄?
- 18. 如何在3次嘗試中關閉登錄表單
- 19. 如何在3次登錄嘗試後阻止用戶?
- 20. Java登錄3次嘗試連續出現消息框
- 21. 3次登錄嘗試失敗時禁用文本框
- 22. 3次無效登錄嘗試後顯示recapacha?
- 23. 在Visual Basic中使用文本框登錄,3次嘗試
- 24. 登錄嘗試Servlet - 如果用戶全部3次登錄嘗試失敗,則禁用用戶10分鐘
- 25. Jenkins只是在第二次嘗試時登錄
- 26. 要求多次嘗試登錄的SSO
- 27. 限制登錄嘗試次數
- 28. Angular2 ngrx/store有多次登錄嘗試
- 29. 只允許點擊一次
- 30. 一次只允許一個會話
你是如何存儲用戶信息? – Adkins 2010-10-21 14:04:50