3

Web.configSQL CE を使用するために、このように構成されたメンバーシップ プロバイダーを使用しています。

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=|DataDirectory|\Users.sdf" providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

と:

<membership defaultProvider="DefaultMembershipProvider">
  <providers>
    <clear />
    <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" passwordFormat="Hashed" applicationName="/" />
  </providers>
</membership>

マシンキーが指定されていない場合、これは正しく機能します。

次のようにマシンキーを追加するとWeb.config、既存のユーザーはログインできなくなります。ただし、新しいユーザーを作成してログインすることはできます。

<machineKey validationKey="D829F10BE92767EC2F9E9FC53B2CF3952AAD386483D6E81E74B4BD84DBE66F71CA121581598FEA669892DBDE46507DF3C8028BBD8FD4E678557621141945171C" decryptionKey="D14678D1FB1777E10316163F6D97071CDF2A447FA15C172DC9525BA397BB0610" validation="SHA1" decryption="AES" />
<pages enableViewStateMac="true"/>

マシンキーを削除すると、最初に作成されたユーザーは再度ログインできますが、新しく作成されたユーザーはログインできません。

パスワードが暗号化されずにハッシュされているのに、マシンキーを追加すると既存のユーザーがログインできるかどうかが変わるのはなぜですか?

4

1 に答える 1