使用SqlMembershipProvider禁用帐户锁定

28
如何禁用SqlMembershipProvider的账户锁定功能? MaxInvalidPasswordAttempts 属性的MSDN文档没有说明如何禁用它。如果我找不到正确的方法,我将把maxInvalidPasswordAttempts属性设置为int的最大值,这可能会达到相同的效果。
我很清楚地知道禁用帐户锁定并不是一个好主意,但在短期内我需要实现它。
1个回答

41

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

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

<membership defaultProvider="SqlMembershipProvider">
  <providers>
    <add name="SqlMembershipProvider" type="..."
         maxInvalidPasswordAttempts="2147483647"
         />
  </providers>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接