我正在创建一个新的应用程序..我创建了一个登录页面成功..现在我需要修改登录页面..只有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. Facebook登录尝试登录首次
- 4. 春季安全只允许oauth登录
- 5. 我应该允许多次登录吗?
- 6. 只允许一次
- 7. 只允许在NodeJS中一次从一台设备登录
- 8. 只允许在nodejs中使用json web令牌一次登录
- 9. 以PHP记录登录尝试次数
- 10. ASP.NET登录尝试登录?
- 11. 3次无效登录尝试后显示recapacha?
- 12. 如何在3次尝试中关闭登录表单
- 13. 登录尝试Servlet - 如果用户全部3次登录尝试失败,则禁用用户10分钟
- 14. 要求多次尝试登录的SSO
- 15. 只允许点击一次
- 16. 一次只允许一个会话
- 17. 设计Confirmable允许登录
- 18. 多次登录尝试后阻止用户登录
- 19. 的HttpWebRequest在第三次尝试超时,只有两个连接允许HTTP 1.1
- 20. 首次尝试登录被拒绝,但第二次尝试成功
- 21. 登录尝试的PHP登录脚本
- 22. 我需要经过3次尝试
- 23. RxJS重试获取数据登录后 - 如果登录尝试一次
- 24. GitLab禁用正规的用户名密码登录,只允许OmniAuth登录
- 25. 尝试差异''的错误。只有阵列和iterables允许
- 26. 允许用户第二次尝试获取正确答案
- 27. 应该允许多少次失败的登录尝试 - 以及在哪段时间?
- 28. Laravel登录尝试消息
- 29. Servlet:登录尝试失败
- 30. 失败登录尝试
你是如何存储用户信息? – Adkins 2010-10-21 14:04:50