首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MembershipReboot锁定功能问题

MembershipReboot锁定功能问题
EN

Stack Overflow用户
提问于 2016-01-15 10:13:28
回答 1查看 210关注 0票数 0

几天来,我一直在玩MembershipReboot框架,老实说,它看上去很不错。我会把它用于我的申请。

然而,我的问题是它的锁定功能。我试过几次锁我的帐户,但似乎什么也没发生。这是我的配置

<membershipReboot requireAccountVerification="true" emailIsUsername="false" multiTenant="false" allowAccountDeletion="true" passwordHashingIterationCount="0" accountLockoutDuration="00:05:00" passwordResetFrequency="0" accountLockoutFailedLoginAttempts="2" />

看来,在我的第三次甚至第四次尝试,我可以登录没有任何问题。此外,我已经调查了成员资格使用的DB,我找不到锁定帐户的任何标志。

我的问题是-锁定功能已经实现了,还是我必须在那里执行我的逻辑?如果它是实现的,那么我可以启用它吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-01 11:26:42

MembershipReboot中的帐户锁定使用来自安全设置配置的两个属性

  • AccountLockoutFailedLoginAttempts (int,默认值: 10):在帐户被锁定之前失败的密码登录尝试次数。
  • AccountLockoutDuration (TimeSpan,默认值:5分钟):由于密码登录尝试失败,帐户的持续时间将被锁定。

在您的设置中,您正在重写默认值。因此,如果在5分钟的窗口内尝试超过2次失败的登录尝试,您的帐户就会从上次失败的登录中锁定5分钟。如果您尝试在上次登录失败后5分钟登录,您将被登录,因为根据锁定逻辑,帐户未被锁定。如果您试图在5分钟内登录,但未超过失败尝试,则仍然可以登录。

代码比单词(检查VerifyPassword方法)更好,您将在UserAccounts表中看到帐户锁定所需的所有属性。即LastFailedLogin和FailedLoginCount

代码语言:javascript
复制
protected virtual bool CheckHasTooManyRecentPasswordFailures(TAccount account)
    {
        var result = false;
        if (Configuration.AccountLockoutFailedLoginAttempts <= account.FailedLoginCount)
        {
            result = account.LastFailedLogin >= UtcNow.Subtract(Configuration.AccountLockoutDuration);
            if (!result)
            {
                // if we're past the lockout window, then reset to zero
                account.FailedLoginCount = 0;
            }
        }

        if (result)
        {
            account.FailedLoginCount++;
        }

        return result;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34808748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档