登录 – 仅允许3次尝试

我正在创建一个新的应用程序..我成功创建了一个登录页面..现在我需要修改登录页面..只有3次尝试才允许用户使用..如果用户错误输入密码超过3次(5次以内) min)他的帐户必须被屏蔽。并且必须显示错误消息,因为您无法访问您的页面..请分享您的想法……

您将需要使用Membership.MaxInvalidPasswordAttempts属性来跟踪登录尝试。

这里有一个显示错误消息的工作代码示例:

http://forums.asp.net/p/1520434/3652047.aspx

只需将一个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; }