Пример сценария в приложении ASP.NET с использованием поставщика членства SQL Server:
1) пользователь не может вспомнить свой точный пароль и много раз пытается за короткое время войти в систему с неверным паролем (скажем, 5 раз в 10-минутном окне). Это блокирует пользователя (т.е. устанавливает флаг IsLockedOut таблицы aspnet_Membership в 1).
2) пользователь заходит на экран «забыл мой пароль», чтобы попытаться получить новый пароль по электронной почте. Этот экран использует элемент управления PasswordRecovery. Пользователь вводит свой правильный идентификатор пользователя, но затем не может идти дальше в процессе восстановления пароля, поскольку флаг IsLockedOut равен 1. (Они даже не видят своего секретного вопроса).
3) Затем пользователю придется позвонить в службу технической поддержки, чтобы разблокировать себя и т. Д.
Чтобы уменьшить нагрузку на службу поддержки, мы стараемся сократить время, необходимое для выполнения шага 3, заставляя элемент управления PasswordRecovery (если возможно) работать с заблокированными пользователями. то есть, когда они вводят свой идентификатор входа в систему, возникает вопрос безопасности, и если они вводят правильный ответ, система разблокирует пользователя и отправляет ему новый временный пароль. Мне интересно, можно ли настроить элемент управления PasswordRecovery для этого. Или, может быть, у этого подхода есть проблемы с безопасностью?