Поставщик членства в ASP.NET - проверка хешированного секретного вопроса / ответа - PullRequest
2 голосов
/ 19 мая 2009

На странице, которую я добавляю, восстановить забытое имя пользователя

Шаг 1) Введите адрес электронной почты (Получить учетную запись по электронной почте)

Шаг 2) Проверьте секретный вопрос (они дают ответ, а я его проверяю)

Шаг 3) Отправьте им письмо с именем пользователя

Шаг 2, где я застрял. Как мне проверить ответ с тем, что хранится в базе данных?

Все значения хэшируются.

Я вижу другие вопросы, похожие на эти, но они не отвечают на вопрос, по крайней мере, неясно.

Ответы [ 2 ]

2 голосов
/ 19 мая 2009

Как вы сказали, значения в БД хэшируются, поэтому для проверки того, что введенный пользователем соответствует тому, что в БД, хэшировали введенное пользователем значение и сравнивали два хэшированных значения. Если они равны, это подтверждает.

Вам необходимо хешировать текст ответа, прежде чем сравнивать его со значением в базе данных.

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

1 голос
/ 19 мая 2009

Глядя на провайдера, он не предоставляет никаких способов выполнить желаемый шаг два.

Вам нужно будет сделать следующее.

  1. Создайте хранимую процедуру, которая будет получать результаты на основе электронного письма и ответа.
  2. Как вы упомянули, поскольку ответ хэшируется, вам нужно будет хэшировать MD5 введенных пользователем значений. (FormsAuthentication.HashPasswordForStoringInConfigFile будет работать для этого)
  3. Вызовите вашу хранимую процедуру с необходимыми параметрами, чтобы проверить соответствие информации пользователей.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...