古いパスワードを知らずに mvc4 プロバイダーを使用してパスワードを設定する方法を知りたいですか?
ユーザーが電子メールで安全なリンクを受け取り、リンクをクリックしてアプリケーションに移動し、新しいパスワードのみを入力する必要がある、パスワードを忘れた機能を作成したいのですが、セキュリティの質問は必要ありません。
これは、mvc3 に付属のメンバーシップ プロバイダーを使用して簡単に行うことができました。現在、mvc4 に付属している単純なメンバーシップ プロバイダーを使用していますが、うまく動作しません。
これまでのコードは次のように単純に見えます。
MembershipUser user = Membership.GetUser( cust.Email );
String pass = user.GetPassword();
Boolean success = WebSecurity.ChangePassword( cust.Email, pass, model.Password );
現在、GetPassword() を呼び出す上記の行でエラーが発生します。
指定された方法はサポートされていません。
ここでも web.config の関連セクションを示します。
<system.web>
<roleManager enabled="true" defaultProvider="SimpleRoleProvider">
<providers>
<clear/>
<add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/>
</providers>
</roleManager>
<membership defaultProvider="SimpleMembershipProvider">
<providers>
<clear/>
<add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData"
enablePasswordRetrieval="true" enablePasswordReset="true" passwordFormat="Encrypted" requiresQuestionAndAnswer="false"
requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10" />
</providers>
</membership>
上記で、プロバイダーに使用する属性を mvc3 に追加しようとしましたが、ここでは適用できないようです。