1

古いパスワードを知らずに 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 に追加しようとしましたが、ここでは適用できないようです。

4

1 に答える 1