MembershipPasswordFormat.Hashed? Как это работает? - PullRequest
1 голос
/ 11 января 2010

Прямо к точке:

Где я могу разместить алгоритм шифрования паролей в приложении Membership? или: Где команда Microsoft разместила метод шифрования?

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

Большое спасибо:)

----- Обновление

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

Ответы [ 3 ]

2 голосов
/ 11 января 2010

Это указывается в конфигурации провайдера членства вашей веб-конфигурации с использованием add element :

<!-- SqlMembershipProvider syntax -->
<add name="string" 
  type="string" 
  connectionStringName="string"
  applicationName="MyApplication"
  commandTimeout
  description
  enablePasswordRetrieval="false"
  enablePasswordReset="true"
  passwordFormat="Hashed"
  minRequiredPasswordLength
  minRequiredNonalphanumericCharacters
  passwordStrengthRegularExpression
/>

Алгоритм по умолчанию - SHA1, как определено в поставщике членства, но вы можете переопределить его, если хотите использовать атрибут hashAlgorithmType:

<membership
  defaultProvider="provider name"
  userIsOnlineTimeWindow="number of minutes"
  hashAlgorithmType="SHA1">
  <providers>...</providers>
</membership>

Подробнее о предоставлении собственного алгоритма см. «Отображение имен алгоритмов в классы криптографии» .

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

Если вы написали свой собственный MembershipProvider, я предлагаю вам взглянуть на «Как: Пример реализации поставщика членства» , особенно методы EncodePassword и UnencodePassword.

1 голос
/ 11 января 2010

Это опция для провайдера в конфигурации XML. документы показывают, что вы просто установили "passwordFormat = 'hashed'".

1 голос
/ 11 января 2010

Не уверен, но я думаю, что пароли сохраняются в виде обычного текста, потому что «поиск пароля» включен. Вы можете отключить это, установив в Web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...