Блокировка пользователя Не работает, если у пользователя нет идентификатора электронной почты 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>