0

現在、ユーザーがパスワードを忘れたときにセキュリティ アンサーが正しいことを要求する MVC 3 アプリケーションを使用しています。

ただし、セキュリティ アンサーを知らなくても、システム管理者が任意のユーザーのパスワードをリセットできるようにしたいと考えています。

これに対する解決策はありますか?

4

1 に答える 1

0

私はこのソリューションに2つの異なるプロバイダーを使用することになりました。両方のプロバイダーがアプリケーションのWeb.Configファイルに追加されました。

<membership>
  <providers>
    <clear/>
    <add name="ProviderRequiredAnswer"  .......
       enablePasswordReset="true" requiresQuestionAndAnswer="true" ...... />
    <add name="ProviderNoRequiredAnswer"  ......
       enablePasswordReset="true" requiresQuestionAndAnswer="false" ...... />

   </providers>
</membership>

通常のユーザーがパスワードを忘れてリセットする必要がある場合、次の方法で最初のプロバイダーを使用するユーザーを取得します。

MembershipUser user = Membership.Providers [" ProviderRequiredAnswer "] .GetUser(model.userToReset、false);

文字列autoGenPass=userToReset.ResetPassword(model.PasswordAnswer);

bool resetPasswordSucceeded = userToReset.ChangePassword(autoGenPass、model.NewPassword);

一方、セキュリティ回答を持っていないシステム管理者がユーザーのパスワードをリセットする必要がある場合は、次の方法で2番目のプロバイダーを使用するユーザーを取得します。

MembershipUser user = Membership.Providers [" ProviderNoRequiredAnswer "] .GetUser(model.userToReset、false);

文字列autoGenPass=userToReset.ResetPassword();

bool resetPasswordSucceeded = userToReset.ChangePassword(autoGenPass、model.NewPassword);

于 2012-10-18T21:00:08.960 に答える