用户锁定如果用户没有电子邮件ID MVC 5,则不起作用

时间:2016-02-25 17:00:09

标签: asp.net-mvc asp.net-mvc-5 asp.net-identity lockout

我试图在n次尝试失败后锁定用户,这只有在用户有电子邮件ID且我使用用户名而不是电子邮件ID登录我的应用程序时才有效。在这种情况下是否有办法我可以在没有电子邮件ID的情况下锁定用户吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试在会话变量中保留失败计数器。您需要将会话状态添加到web.config以使用此代码。

在您的控制器中

    public int getFailedAttempts()
    {
        int? failedAttempts = Session["FailedAttempts"] as int?;

        if (failedAttempts != null)
        {
            return (int)failedAttempts;
        }
        else {
            return 0;
        }
    }

    public void handleFailedAttempt()
    {
        var failedAttempts = getFailedAttempts();

        Session["FailedAttempts"] = failedAttempts + 1;
    }

在web.config中

    <system.web>
      ...
      <sessionState mode="InProc" timeout="30" />
    </system.web>