У меня есть сайт DNN, работающий с DNN 7.04.00 (353). Я не могу сбросить пароли на моем сайте. Если я использую встроенную функцию сброса пароля, я могу получить электронное письмо с сбросом пароля со ссылкой. Я нажимаю ссылку, указываю свой адрес электронной почты и новый пароль. Независимо от того, что я делаю, я продолжаю получать сообщение об ошибке: «Ваш новый пароль не был принят по соображениям безопасности. Обязательно выберите пароль, который не соответствует ранее использованному паролю и который является длинным и сложным, чтобы встретить сайты требования к сложности пароля. "DNN (DotNetNuke) - Сброс пароля хранится в таблице PasswordHistory, а не aspnet_Membership
Вот что странно, я вхожу в сильный пароль, который никогда не использовался раньше. Когда я это делаю, я вижу следующее:
- Ссылка на сброс пароля отправляется с токеном пароля. Я вижу этот же токен в таблице «Пользователи».
- Я следую ссылке. Попытайтесь сбросить пароль, используя действующий и не использованный ранее пароль. Независимо от того, я получил ошибку выше.
- Значение столбца Users.PasswordResetToken сбрасывается. Для параметра Users.PasswordRestExpiration установлено значение null. Это говорит мне, что я использовал токен, и он больше недействителен.
- Вот что действительно странно ... aspnet_Membership.Password hash value никогда не меняется ... хорошо, что делает, поскольку я не смог с успехом изменить пароль. Однако теперь у меня есть новая запись в таблице PasswordHistory. Значение здесь хешировано, однако похоже, что введенный пароль сброса был сохранен в таблице PasswordHistory ... новый пароль не был сохранен в таблице aspnet_Membership.
Независимо от того, что мой пароль не принят, однако он хранится в таблице PasswordHistory. Кто-нибудь знает, что может это сделать? Несколько примечаний, которые могут вам помочь:
- Пользователи регистрируются для учетных записей на моем сайте через пользовательский модуль регистрации, а не модуль регистрации DNN по умолчанию.
- В web.config DNN У меня есть следующие настройки
- passwordStrengthRegularExpression не существует, я удалил это полностью из web.config для устранения неполадок.
- EnablePasswordReset верно
- requireQuestionAndAnswer верно
- passwordFormat хешируется
Спасибо за вашу помощь.
Благодарим Вас за отзыв. К сожалению, я все еще не могу заставить это работать. У меня есть эти атрибуты со следующими значениями: minRequiredPasswordLength = "8" minRequiredNonalphanumericCharacters = "1". Я использую совершенно новый пароль, который я только что составил, «ChickEnHea% d», и он все еще не работает :( Есть ли у вас какие-либо другие идеи? Единственное, что приходит на ум, это мой пользовательский пользователь чтобы проверить, подходит ли вам аккаунт для регистрации. – KPhillipson
Возможно, вам потребуется прислать код своего входа в систему, а именно пароль для ввода пароля. Глядя на поставщика, который я построил, я использую следующие строки для установки пароля на объекте UserInfo: /* установить членство */ UserMembership oNewMembership = новый UserMembership (oUser) {Password = пароль}; /* Bind членство для пользователя */ oUser.Membership = oNewMembership; – DotNetNuclear
Я добавил свой собственный регистрационный код в исходное сообщение. Еще раз спасибо за вашу помощь. – KPhillipson