1

要点をまっすぐに:

メンバーシッププロバイダーのパスワードハッシュ暗号化のアルゴリズムはどこに配置できますか?または:Microsoftチームは暗号化方式をどこに配置しましたか?

理由:私はそれをハッシュにすることを選択しましたが、私のデータベースに入れられたパスワードは明白です。

どうもありがとうございます :)

- - - アップデート

申し訳ありませんが、私は自分のカスタムプロバイダーを使用しています。

4

3 に答える 3

2

これは、 add要素を使用して、webconfigのメンバーシッププロバイダー構成で指定されます。

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

hashAlgorithmTypeデフォルトのアルゴリズムは、メンバーシッププロバイダーで定義されているSHA1ですが、属性を使用する場合は、これをオーバーライドできます。

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

独自のアルゴリズムを提供する方法の詳細については、「アルゴリズム名の暗号化クラスへのマッピング」を参照してください。

この形式はパスワードの取得などをオーバーライドすることに注意してください。ハッシュされたパスワードは取得できません。パスワードがハッシュされたときにGetPasswordが呼び出された場合、プロバイダーは例外を返す必要があります(EnablePasswordRetrievalプロパティを参照)。

独自のMembershipProviderを作成した場合は、 「方法:メンバーシッププロバイダーの実装のサンプル」、特にメソッドEncodePasswordとを確認することをお勧めしますUnencodePassword

于 2010-01-11T10:08:17.067 に答える
1

わかりませんが、「パスワード検索」が有効になっているため、パスワードはプレーンテキストで保存されていると思います。これを無効にするには、Web.configで<membership ... enablePasswordRetrieval ="False"/>を設定します。

于 2010-01-11T09:42:54.730 に答える
1

これは、XML構成のプロバイダーのオプションです。ドキュメントには、「passwordFormat='hashed'」を設定しただけであることが示されています。

于 2010-01-11T09:44:08.727 に答える