登录 – 仅允许3次尝试
我正在创建一个新的应用程序..我成功创建了一个登录页面..现在我需要修改登录页面..只有3次尝试才允许用户使用..如果用户错误输入密码超过3次(5次以内) min)他的帐户必须被屏蔽。并且必须显示错误消息,因为您无法访问您的页面..请分享您的想法……
您将需要使用Membership.MaxInvalidPasswordAttempts属性来跟踪登录尝试。
这里有一个显示错误消息的工作代码示例:
只需将一个int-column添加到名为FailedLogins
的用户表中。 每当他失败时计算它,如果计数器更大,那么3不再允许从该帐户进行任何登录。
编辑:如果要在一定时间后重置尝试,则必须添加datetime-column(fe LastFailedLogin
)并检查是否已经过了足够的时间以允许进一步尝试和/或重置计数器。
我们在说多少用户? 1? 数百?
如果只有一个,则可以创建静态int变量和静态DateTime变量。 程序启动时,将int nTries设置为0,将DateTime staticDate设置为Now。
每次显示登录屏幕时,请检查nTries 如果您喜欢使用文本文件进行读/写,您还可以轻松读取/写入文本文件的尝试次数。 在这种情况下,如果只有少数用户的小应用程序,则每个用户可以有一行(避免数据库开销)。 如果您有数百个用户,则需要使用数据库。 在该数据库中,您可以存储每个用户,他的上次登录尝试时间戳以及他所拥有的尝试次数。
你可以使用这个代码,
//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; }