none
ASP.NETのMembershipUser.ResetPassword()でパスワードの回答を引数に指定することなく、パスワードをリセットする方法について RRS feed

  • 質問

  • ASP.NETでWebアプリケーションを開発しています。
    ASP.NETのユーザ管理機構を使用して、フォーム認証を実装しました。
    また、このWebアプリケーションは、Roleを割り当て、管理者と一般ユーザに合わせて機能を切り換えています。
    管理者ユーザは、一般ユーザのパスワードをリセットできる機能を実装しようと考えています。

    MembershipUserのResetPassword()を使い、強制的にパスワードをリセットしようとしますが、ResetPassword()では、
    ”パスワードの回答”がなければリセットできません。
    Loginしていない別ユーザのパスワードを”パスワードの回答”なしでリセットさせるために、ResetPasswordに引数のない
    メソッドで呼び出す方法か、システムの構成で、”パスワードの回答”を必要としない設定をご存じの方は、ご助言いただけないでしょうか。

    よろしくお願いします。
    Reiji Tanaka
    2009年11月15日 2:53

回答

すべての返信

  • MembershipUser.ResetPassword メソッド によると
    RequiresQuestionAndAnswer が false の場合、answer パラメータに nullを指定するか、パラメータを一切受け取らない ResetPassword オーバーロードを使用できます。
    と書かれています。web.config等でそのように構成すればいいのではないでしょうか?
    2009年11月15日 6:30
  • Membership.Provider プロパティでアプリケーション既定のメンバシッププロバイダ (SqlMembershipProvider ?) への
    参照を取得し、MembershipProvider.ChangePassword メソッドでパスワードを変更するという手段はいかがですか?

    MembershipProvider.ChangePassword メソッド
    http://msdn.microsoft.com/ja-jp/library/system.web.security.membershipprovider.changepassword.aspx

    一応検証して変更できることは確認しました。でも、旧パスワードの取得が問題かも。


    #質問内容からすると、IIS より ASP.NET のフォーラムで質問するのが適当と思います。
    2009年11月15日 8:50
  • SurferOnWwwさん

    コメントありがとうございます。
    ご指摘のとおり、旧パスワードの取得が課題になってしまいます。
    管理者ユーザといえども、パスワードを解析できることは問題なので、一応パスワードは取得できない構成での運用が必要です。
    ASP.NETフォーラムに質問してみます。

    ありがとうございます。
    Reiji Tanaka
    2009年11月16日 8:05
  • 佐祐理さん

    いつも助言ありがとうございます。
    IISとかASP.NETは今回初めて使うので十分理解できていないので申し訳ありません。

    RequiresQuestionAndAnswerの値は、Debugで確認すると、trueになっています。

    コメントいただきましたように、web.configに
              requiresQuestionAndAnswer="false"
    の設定を追加できればよいと思ったのですが、それをどの部分に追加するのかよくわかりません。
    また、VisualStudio2008で開発しているので、サイト管理ツールを起動して、アプリケーションの構成で、
    上記のキーを追加してみましたが、とくに動作上”RequiresQuestionAndAnswer”がfalseを返すように
    できません。

    参考になる情報をお持ちでしたら、教えていただけないでしょうか。

    よろしくお願いします。

    ちなみに、私と同じ質問をされている方が、ありましたが、そのスレッドでも、結局指定方法の回答がないままで、止まっています。

    Reiji Tanaka
    2009年11月16日 8:11
  • 新たにスレッドを作成されているようですので、リンクしておきます。

    http://social.msdn.microsoft.com/Forums/ja-JP/aspnetja/thread/12e03571-24d8-4c85-904d-9a002cd790d1


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    • 回答としてマーク Reiji 2009年11月17日 0:54
    2009年11月16日 14:21