如何禁用 SqlMembershipProvider 的帐户锁定功能?
MaxInvalidPasswordAttempts属性的MSDN文档未指定如何禁用它。如果我找不到正确的方法,我会将maxInvalidPasswordAttempts属性设置为int的最大值,这可以有效地实现相同的结果。
我很清楚禁用帐户锁定不是最好的主意,但我需要在短期内实现这一目标。
答案 0 :(得分:40)
将maxInvalidPasswordAttempts属性设置为Int32.MaxValue,就像我在我的问题中所建议的那样,并且如下面的web.config片段所示。我已经使用Reflector来查看SqlMembershipProvider实现,但无法看到如何明确禁用帐户锁定功能,所以我将接受这个作为解决方案。
我没有测试完全设置PasswordAttemptWindow的建议但是它不能设置为0(必须是一个正整数,即至少一分钟)所以如果没有将maxInvalidPasswordAttempts属性设置得足够高以防止在一分钟内锁定。
<membership defaultProvider="SqlMembershipProvider">
<providers>
<add name="SqlMembershipProvider" type="..."
maxInvalidPasswordAttempts="2147483647"
/>
</providers>