少し奇妙なシナリオ。管理者が質問と回答を記入せずにアカウントを作成する必要があるため、RequiresQuestionAndAnswerをfalseに設定しているため、ユーザーはその部分を設定したいと考えています。ASP.NET RequiresQuestionAndAnswer false breaks GetPassword
RequiresQuestionAndAnswerがfalseの場合、ユーザーはログインし、独自のセキュリティパスワードと回答を設定するように求められます(自分でコーディングしたものの、メンバーシップメソッドを使用して情報を格納します)。 aspnet_membershipテーブルは、ユーザーが最初にパスワードの質疑応答で作成されたかのようにします。
[パスワードを忘れた場合]ページで、Membership.Provider.GetPassword(username、passwordanswer)を使用しようとすると、パスワードの回答が間違っていてもパスワードが生成されます。
これは私に虚偽の手段にRequiresQuestionAndAnswerを設定するので、ASPNETの障害のように見えるでしょう:
「私は、ユーザーを作成するには、これを必要としませんが、私はまだそれを使用することができます」。 asp.netへの一方
手段です:
「私は、ユーザーを作成するには、これを必要とせず、私はそれを使用することは決してありませんので、それはどこでも無視されます。」
誰もがこの問題を回避する方法を知っていますか?私は提供されたセキュリティの答えが正しいことを確認し、リセットしたり、ユーザーのパスワードを取得する必要があります。暗号化されたパスワードを使用しているので、取得が可能でなければなりません。
"暗号化されたパスワードを使用しているため、ハッシュされていないため、取得が可能です。" - [あなたのパスワードをハッシュしてください](http://stackoverflow.com/questions/325862/what-are-themost-common-security-mistakes-programmers-make/325870#325870)。 –
@Chris - 暗号化は、パスワードがクリアに保存されていない限り、ハッシュの問題をある程度解決します。パスワードのテキストを回復できる必要がある場合は、これが唯一のオプションです。 –