2

ASP.NET MVC2Webアプリでパスワード回復制御を使用しています。ユーザー名なしで送信ボタンをクリックすると、ユーザー名がアスタリスクで欠落していることを示します。ユーザー名を入力すると、フォームは送信されますが、何も起こりません。ここで何かが足りませんか?

Web.config:

<system.net>
  <mailSettings>
    <smtp deliveryMethod="Network" from="yyy@zzz.com">
      <network host="mail.zzz.com" userName="yyy@zzz.com" 
        password="xxxxx" enableSsl="false" />               
    </smtp>
  </mailSettings>
</system.net>   

machine.config

<membership defaultProvider="MySQLMembershipProvider">
<providers>
<add name="MySQLMembershipProvider" 
type="MySql.Web.Security.MySQLMembershipProvider, MySql.Web, Version=6.3.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" 
autogenerateschema="true"
connectionStringName="LocalMySqlServer" 
enablePasswordRetrieval="false" 
enablePasswordReset="true" 
requiresQuestionAndAnswer="false" 
applicationName="/" 
requiresUniqueEmail="true" 
passwordFormat="Hashed" 
maxInvalidPasswordAttempts="5" 
minRequiredPasswordLength="6" 
minRequiredNonalphanumericCharacters="1" 
passwordAttemptWindow="10" 
passwordStrengthRegularExpression="" />
</providers>
</membership>
4

1 に答える 1

0

構成によると、ハッシュ化されたパスワードを使用しており、パスワードの取得が無効になっています。これは、パスワードを回復できないことを意味します (パスワードはハッシュされているため)。リセットすることしかできません。

これは安全な設定なので、変更しないでください。ただし、ハッシュ化されたパスワードは「復元」できないことに注意してください。

パスワードが回復可能でなければならないことが要件で指定されている場合は、passwordFormat を Encrypted に変更し、enablePasswordRetrieval="true" を設定する必要があります。ただし、プロバイダーに関する限り、現在の値は「破損」するため、データベース内のハッシュ化されたパスワードとパスワードの回答はユーザーが再入力する必要があることに注意してください。この変更を強制するには、ログイン ページで Authenticate メソッドをオーバーライドし、ユーザーの LastPasswordChange の日付を確認してから、ページにリダイレクトしてパスワードを再構成し、適切にログインできるようにします。

ただし、最後に言及しておきたいのは、暗号化されたパスワードは復号化できるため、取得できるということです。これは、安全性が低いことを意味します。可能であれば、ハッシュ化されたパスワードを使用してください。

于 2011-03-17T21:20:37.197 に答える