Как реализовать ссылку восстановления пароля в ASP.NET?

Стараются не проверять на пустые обработчики событий

Добавление пустого делегата в событиях в объявлении, подавляя потребность всегда проверить событие на пустой указатель прежде, чем звонить это является потрясающим. Пример:

public delegate void MyClickHandler(object sender, string myValue);
public event MyClickHandler Click = delegate {}; // add empty delegate!

Позволяют Вам сделать это

public void DoSomething()
{
    Click(this, "foo");
}

Вместо этого

public void DoSomething()
{
    // Unnecessary!
    MyClickHandler click = Click;
    if (click != null) // Unnecessary! 
    {
        click(this, "foo");
    }
}

, также посмотрите этот связанное обсуждение и этот сообщение в блоге Eric Lippert по этой теме (и возможные оборотные стороны).

5
задан Andy Rose 24 July 2009 в 19:58
поделиться

2 ответа

Это будет как бы я с этим справился. Но не забудьте удалить строку из базы данных, когда вы закончите, и внедрить какой-то контроль наводнения. Я знаю, что существует множество (буквально) комбинаций для руководств, но выполнение простой проверки IP в зависимости от количества попыток за последние 5 минут и их блокировка после x попыток может помочь повысить безопасность сброса. Это станет более важным, чем больше будет ваша база пользователей и чем часто они забывают свои пароли.

3
ответ дан 14 December 2019 в 19:21
поделиться

Звучит отлично. Моя единственная рекомендация - использовать вычисленное значение вместо случайного идентификатора для ссылки электронной почты. Возможно, хешированная версия имени пользователя? Это чисто из-за моего презрения к случайным числам. :)

2
ответ дан 14 December 2019 в 19:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: