0

Мой сценарий У меня есть asp.net веб-приложение 2.0 приложений, которые имели свойства AspNetSqlMembershipProvider как:AspNetSqlMembershipProvider и PasswordRecovery управления

EnablePasswordRetrieval = "ложь" и passwordFormat = "HASHED"

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

EnablePasswordRetrieval = "истинный" и passwordFormat = "Clear"

Проблема в том, как управляющие PasswordRecovery ведет себя. Из того, что я прочитал, он проверяет свойства тега AspNetSqlMembershipProvider, если enablePasswordRetrieval = «true» и passwordFormat = «Clear», он попытается получить пароль, что вызывает проблему, когда пароль по-прежнему сохраняется как хешированный. Есть ли способ заставить элемент управления PasswordRecovery сбросить пароль, не восстанавливая пароль, когда свойства AspNetSqlMembershipProvider являются enablePasswordRetrieval = "true" и passwordFormat = "Clear"?

Извините за длинное объяснение, все рекомендации/указатели очень ценятся, как всегда. Спасибо.

ответ

0

Я не думаю, что вам удастся использовать два метода для хранения паролей в базе данных.

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

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

0

Из-за того, что я испытал, изменение форматов пароля проблематично - я не думаю, что есть способ заставить провайдера автоматически обрабатывать это для вас.

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

0

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