AspNetSqlMembershipProvider и элемент управления PasswordRecovery - PullRequest
0 голосов
/ 14 апреля 2009

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

enablePasswordRetrieval = "false" и passwordFormat = "Hashed"

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

enablePasswordRetrieval = "true" и passwordFormat = "Clear"

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

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

Ответы [ 3 ]

0 голосов
/ 14 апреля 2009

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

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

0 голосов
/ 14 апреля 2009

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

0 голосов
/ 14 апреля 2009

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

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

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

...