Блокировка пользователя Не работает, если у пользователя нет идентификатора электронной почты MVC 5

Я пытаюсь заблокировать пользователя после n неудачных попыток, и это работает только в том случае, если у пользователя есть идентификатор электронной почты, и я использую имя пользователя вместо идентификатора электронной почты для входа в свое приложение. В этом сценарии есть способ блокировки пользователь без идентификатора электронной почты тоже?

1 ответ

Вы можете попробовать сохранить счетчик ошибок в переменной сеанса. Вам нужно будет добавить состояние сеанса в 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>
Другие вопросы по тегам