|
|
1
7
Scott Mitchell在ASP.NET网站上编写了一系列优秀的教程。此链接包含有关创建自定义提供程序的信息,并讨论锁定逻辑: http://www.asp.net/LEARN/security/tutorial-06-cs.aspx 也没有内置的方法来解锁帐户(即,如果您使用的是类似于SqlMembershipProvider的工具,则必须通过数据库工具来实现)。Scott还写了一篇关于创建一个UI来管理它的文章,您可以在这里找到: http://www.asp.net/LEARN/security/tutorial-14-vb.aspx 实际上,我建议大家阅读整个系列。斯科特是个优秀的沟通者。 我希望这有帮助。 |
|
2
3
这是你必须自己写的东西。 默认数据库架构在aspnet_成员资格表中具有以下列:
一旦用户达到最大登录尝试次数,您需要确保已设置MembershipUser.IsLockedOut,并且已从您的提供商处设置-然后您可以检查该值并进行适当的操作-如果您使用默认登录控件,则可能已经为您检查了该值。 |
|
|
3
3
复制导致锁定的条件(错误登录尝试过多)。 由于成员资格提供商每次都会访问其后端,因此将此方法限制为具有合理数量的MaxInvalidPasswordAttempts的提供商是明智的。
|
|
|
4
0
在自定义成员资格提供程序中,应实现ValidateUser函数。在这里,您不仅可以检查用户名和密码是否有效,还可以从数据存储中检索无效密码尝试次数等。如果用户名/密码有效,请重置密码尝试计数,否则请增加尝试计数。SqlMembershipProvider还存储LastAttement日期时间,因此您不能强行进入,因为不允许您在特定时间范围内尝试。 |