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

質問
-
ASP.NETでWebアプリケーションを開発しています。
ASP.NETのユーザ管理機構を使用して、フォーム認証を実装しました。
また、このWebアプリケーションは、Roleを割り当て、管理者と一般ユーザに合わせて機能を切り換えています。
管理者ユーザは、一般ユーザのパスワードをリセットできる機能を実装しようと考えています。
MembershipUserのResetPassword()を使い、強制的にパスワードをリセットしようとしますが、ResetPassword()では、
”パスワードの回答”がなければリセットできません。
Loginしていない別ユーザのパスワードを”パスワードの回答”なしでリセットさせるために、ResetPasswordに引数のない
メソッドで呼び出す方法か、システムの構成で、”パスワードの回答”を必要としない設定をご存じの方は、ご助言いただけないでしょうか。
よろしくお願いします。
Reiji Tanaka
回答
すべての返信
-
MembershipUser.ResetPassword メソッド によると
RequiresQuestionAndAnswer が false の場合、answer パラメータに nullを指定するか、パラメータを一切受け取らない ResetPassword オーバーロードを使用できます。
と書かれています。web.config等でそのように構成すればいいのではないでしょうか? -
Membership.Provider プロパティでアプリケーション既定のメンバシッププロバイダ (SqlMembershipProvider ?) への
参照を取得し、MembershipProvider.ChangePassword メソッドでパスワードを変更するという手段はいかがですか?MembershipProvider.ChangePassword メソッド
http://msdn.microsoft.com/ja-jp/library/system.web.security.membershipprovider.changepassword.aspx一応検証して変更できることは確認しました。でも、旧パスワードの取得が問題かも。
#質問内容からすると、IIS より ASP.NET のフォーラムで質問するのが適当と思います。 -
佐祐理さん
いつも助言ありがとうございます。
IISとかASP.NETは今回初めて使うので十分理解できていないので申し訳ありません。
RequiresQuestionAndAnswerの値は、Debugで確認すると、trueになっています。
コメントいただきましたように、web.configに
requiresQuestionAndAnswer="false"
の設定を追加できればよいと思ったのですが、それをどの部分に追加するのかよくわかりません。
また、VisualStudio2008で開発しているので、サイト管理ツールを起動して、アプリケーションの構成で、
上記のキーを追加してみましたが、とくに動作上”RequiresQuestionAndAnswer”がfalseを返すように
できません。
参考になる情報をお持ちでしたら、教えていただけないでしょうか。
よろしくお願いします。
ちなみに、私と同じ質問をされている方が、ありましたが、そのスレッドでも、結局指定方法の回答がないままで、止まっています。
Reiji Tanaka