ASP.NET, как остановить количество повторов на странице входа - PullRequest
1 голос
/ 18 января 2010

На моем сайте asp.net я хотел бы включить блокировку учетной записи на странице входа. Я не использую провайдера для этого. Также я хотел бы автоматически разблокировать учетную запись после настраиваемого времени.

Как я знаю, Microsoft также предоставляет функцию блокировки учетной записи у провайдера, но у меня другие требования

1. I am using Oracle database
2. I would not like to store account lock info in database. Because it require administrator involvement.
3. Is there auto-unlock way of doing?

Пожалуйста, помогите?

Ответы [ 2 ]

2 голосов
/ 18 января 2010

Вы можете использовать куки для хранения количества попыток и времени начала блокировки. Затем при загрузке страницы вы читаете из этого куки, и если количество попыток превышает указанное время, установите блокировку Если он заблокирован и период блокировки истек, разблокируйте запись в журнал.

После успешного входа установите количество неудачных попыток равным 0.

1 голос
/ 18 января 2010

Вы можете использовать шаблон синглтона для создания объекта, который поддерживает информацию между запросами так же, как объект кеша или сеанса.

Имея это в виду, вы можете создать в памяти только объект, который вы можете использовать для ограничения повторных запросов на вашем сайте, сохраняя информацию о каждом неудавшемся запросе, вы также можете комбинировать это с таймерами для удаления запросов старше указанного времени. Затем это позволяет вам проверить, что пользователь не превысил число неудачных запросов, и таймер автоматически разблокируется, автоматически удаляя старые запросы.

http://www.dofactory.com/patterns/PatternSingleton.aspx

Синглтон будет существовать только на протяжении всего жизненного цикла приложения, поэтому, если он будет повторяться, он удалит все запросы и, следовательно, все блокировки - я думаю, что в IIS это составляет около 20 минут, хотя развертывание также перезапускает приложение. *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...