新しいMVC4 RTMインターネットアプリケーションテンプレートは、ここで説明するようにSimpleMembershipプロバイダーを使用します SimpleMembership
私の既存のMVCWebサイトはASP.Membershipフレームワークを使用しており、理想的には、これらのテーブルのユーザーデータを新しいSimpleMembershipテーブルに移行したいと考えています。これをしたい理由は次のとおりです。
そこで、今日、SQLスクリプトを作成して、既存のASP.Netメンバーシップテーブルのデータを新しいシンプルメンバーシップテーブルに移行しました。これは見つけることができます ここ
MVC 4 Webサイトでログインをテストすると、パスワードの検証に失敗します。 SimpleMemberShipフレームワークで作成された新しいパスワードははるかに長く見えるため、SimpleMembershipは古いMembershipフレームワークとは異なるパスワードアルゴリズムを使用していると思います。
つまり、私の質問は、古いASP.Netメンバーシッププロバイダーで「ハッシュ」パスワード形式を使用していて、ユーザーの元のパスワードを取得できないため、SimpleMembershipプロバイダーを機能させるにはどのようなオプションが必要かということです。
私はいくつかのオプションがあると思います:
多くの人が既存のメンバーシップデータベースを新しいSimpleMemberShipプロバイダーに移行しようとしているのではないかと思います。
どんな助けでも大歓迎です。
乾杯
ジム
誰かがそれを見逃した場合に備えて、ポールのコメントを表面化し、彼の解決策が私が見た中で最高であることを示唆したいと思います。
http://pretzelsteelersfan.blogspot.com/2012/11/migrating-legacy-apps-to-new.html
ありがとうポール
ユーザーがログインすると、プレーンテキストのパスワードにアクセスできます。これにより、別のオプションが提供されます。
ユーザーは変更について知る必要がなく、アクティブユーザーはより安全なハッシュを使用できます。将来的にセキュリティのアップグレードを強制したい場合は、1年間操作がないとアカウントが削除されることをユーザーに警告し、2段階システムを廃止することができます。
同様の問題がありました。これを行うためのチュートリアル/ブログ投稿を書く必要がありましたが、私の解決策は、web.configに以下を追加することでした(これはオプション#2に対応します)。
<system.web>
<membership hashAlgorithmType="SHA1" defaultProvider="DefaultMembershipProvider">
<providers>
<add name="DefaultMembershipProvider" etc.../>
</providers>
</membership>
<machineKey validation="SHA1" />
...
</system.web>
上記のコードの興味深い部分は「hashAlgorithmType」です。これをSHA1に設定すると、古いasp.netメンバーシップハッシュアルゴリズムが使用されます。
私も同様の立場にあります。ユーザーにパスワードを更新するように依頼するか、特定のハッシュアルゴリズムを維持する必要があります。
お役に立てれば! -シグ