Недавно мы добавили возможность для клиентов сбрасывать свои собственные пароли, используя секретный вопрос. Для новых клиентов это нормально, так как мы можем задать секретный вопрос и ответить на вопрос о создании учетной записи. Для существующих клиентов это проблема.
Для клиентов, которые забыли свой пароль, мы отправляем им по электронной почте временный пароль, а затем они входят в систему, чтобы сбросить свой пароль. Однако, этот метод теперь ломается, потому что их ответ пароля является нулем. Мне нужно каким-то образом заставить ответ временного пароля для членства asp.net принять мой временный пароль. Я посмотрел в таблицу aspnet_Membership, и она была нулевой для PasswordQuestion и PasswordAnswer. Я попытался установить значение PasswordAnswer для их текущего соленого пароля, просто чтобы иметь значение там, но ASP.NET постоянно говорит мне, что ответ пароля не может быть нулевым.
Кто-нибудь знает обходной путь для этого? Как мы можем легко добавить в ответ временный пароль? Мы можем сбросить секретный вопрос и ответить, как только мы сбросим пароль, так как мы знаем, что такое временный пароль, но мы находимся в ловушке, не имея возможности установить временный пароль.
Я знаю, что мы могли бы установить другое членство в asp.net для их сброса, но я не хочу этого делать, так как мы делимся методами, и это добавляет намного больше сложности. Нам просто нужна однократная загрузка некоторого значения по умолчанию для ответа на пароль. Есть идеи?
Обновление: ОК, я понял, что проблема заключается не в значении в БД, а в значении, которое я передавал методу ResetPassword (). Он ищет, чтобы я передал значение, которое соответствует тому, что хранится в БД. Тем не менее, я не могу произвести это значение, потому что оно создается из соли сохраненного пароля и введенного пароля. Я попытался использовать другой пароль, сохраненный пользователем, в качестве теста, и он не работал.