Я могу вызвать во временном пароле, отвечают на членство asp.net?

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

Для клиентов, которые забыли их пароль, мы посылаем им по электронной почте временный пароль, и затем они входят в систему, с которым можно изменить их пароль. Однако этот метод теперь повреждается, потому что их ответ пароля является пустым. Я должен так или иначе вызвать в ответе временного пароля для членства asp.net для принятия моего временного пароля. Я смотрел в aspnet_Membership таблице, и это было пустым для PasswordQuestion и PasswordAnswer. Я пытался установить значение PasswordAnswer к их текущему соленому паролю, только иметь значение там, но ASP.NET продолжает говорить мне, что ответ пароля не может быть пустым.

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

Я знаю, что мы могли установить другое членство asp.net для них, чтобы быть сброшенными, но я не хочу делать это, поскольку мы совместно используем методы, и это добавляет намного больше сложности. Нам просто нужно, в 1 раз загружаясь некоторого значения по умолчанию для ответа пароля. Какие-либо идеи?

Обновление: хорошо, я выяснил, что проблема не имела значения в DB, но значения, я был передающим к ResetPassword () метод. Это ищет меня для передачи значения, которое соответствует тому, что хранится в DB. Однако я не могу произвести то значение, потому что оно сгенерировано от соли сохраненного пароля и введенного пароля. Я пытался использовать другой пользовательский сохраненный пароль в качестве теста, и он не работал.

1
задан Noah 24 June 2010 в 17:32
поделиться

1 ответ

Что вы для этого используете? Вы можете легко сделать это, написав его в базе данных с помощью оператора обновления

update aspnet_membership set PasswordAnswer = Password

. Кроме того, если вы хотите получить общий ответ с паролем, я сделал одну вещь в тестовой среде с тем же ключом алгоритма / машины или в вашей среде prod создайте учетную запись, чтобы изменить ответ пароля на то, что вы знаете (например, ваш), затем скопируйте это значение в запрос на обновление, например:

update aspnet_Membership set PasswordAnswer = '<the known v alue>'

, поскольку ответ также зашифрован.

Будьте осторожны, если вы делаете это в производственной среде; Я настоятельно рекомендую сделать это в тестовой среде (при условии, что она имеет тот же ключ шифрования), протестировав там сценарий перед его развертыванием.

HTH.

2
ответ дан 2 September 2019 в 23:32
поделиться
Другие вопросы по тегам:

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