ASP.NET Membership 使用-Membership 中的 PasswordAttemptWindow 是什么意思?

作者:vkvi 来源:ITPOW(原创) 日期:2009-12-8

实在搞不懂,为什么起这个名字——PasswordAttemptWindow,Window,怎么是 Window 呢?所以不能望名生义,去 MSDN 上查了,原来是这个意思:

获取在锁定成员资格用户之前允许的最大无效密码或无效密码提示问题答案尝试次数的分钟数。

有点拗口,可能微软也这么觉得,所以在 .NET Framework 3.5 时,将其解释换成了:

获取时间长度,在该时间间隔内对提供有效密码或密码答案的连续失败尝试次数进行跟踪。

这下好理解了些了。

我们注意到,描述中使用了“获取”一词,代表只读的,要设置的话,在配置文件中设置,请参见:ASP.NET 成员资格-配置

以下是 MSDN 的更多解释:

PasswordAttemptWindow 属性与 MaxInvalidPasswordAttempts 属性一起使用可帮助防止不需要的源通过反复尝试来猜测成员资格用户的密码或密码答案。当用户尝试使用其密码登录、更改或重置其密码时,在指定时间长度内只允许进行一定次数的连续尝试。该时间长度在 PasswordAttemptWindow 属性中指定,该属性标识无效尝试之间所允许的分钟数。

如果用户重置其密码时的连续失败尝试次数等于 MaxInvalidPasswordAttempts 属性中存储的值,且自上次无效尝试以来所经过的时间少于在 PasswordAttemptWindow 属性中指定的分钟数,则会锁定该成员资格用户。通过将 IsLockedOut 属性设置为 true 可锁定该用户,除非调用 UnlockUser 方法才能解除对该用户的锁定。

如果当前失败尝试和上次失败尝试之间的间隔大于 PasswordAttemptWindow 属性设置,则当前无效尝试被视为第一次无效尝试。如果在达到所允许的最多无效尝试次数之前输入了有效密码答案,则无效密码答案尝试计数会设置为 0(零)。如果在达到所允许的最多无效尝试次数之前输入了有效密码答案,则无效密码尝试计数和无效密码答案尝试计数会设置为 0(零)。

无效密码和无效密码提示问题答案的尝试次数分别独立累计。例如,如果 MaxInvalidPasswordAttempts 设置为 5,并且已进行了三次无效的密码尝试,随后进行了两次无效的密码答案尝试,在 PasswordAttemptWindow 之内须再进行两次无效的密码尝试(或者三次无效的密码答案尝试)才会锁定该成员资格用户。

相关文章