28

如何禁用SqlMembershipProvider的帐户锁定功能?

MaxInvalidPasswordAttempts属性的 MSDN 文档未指定如何禁用它。如果找不到正确的方法,我会将 maxInvalidPasswordAttempts 属性设置为 int 的最大值,这可以有效地实现相同的结果。

我很清楚禁用帐户锁定不是最好的主意,但我需要在短期内实现这一目标。

4

1 回答 1

41

将 maxInvalidPasswordAttempts 属性设置为 Int32.MaxValue 按照我在问题中的建议以及下面的 web.config 片段中所示的那样工作。我使用Reflector查看了 SqlMembershipProvider 实现,但看不到如何显式禁用帐户锁定功能,因此我将接受它作为解决方案。

我没有测试彻底设置 PasswordAttemptWindow 的建议,但它不能设置为 0(必须是正整数,即至少一分钟),因此如果不将 maxInvalidPasswordAttempts 属性设置得足够高以防止在一分钟的时间。

<membership defaultProvider="SqlMembershipProvider">
  <providers>
    <add name="SqlMembershipProvider" type="..."
         maxInvalidPasswordAttempts="2147483647"
         />
  </providers>
于 2009-04-28T08:03:15.950 回答