2011-07-13 12 views
0

少し奇妙なシナリオ。管理者が質問と回答を記入せずにアカウントを作成する必要があるため、RequiresQuestionAndAnswerをfalseに設定しているため、ユーザーはその部分を設定したいと考えています。ASP.NET RequiresQuestionAndAnswer false breaks GetPassword

RequiresQuestionAndAnswerがfalseの場合、ユーザーはログインし、独自のセキュリティパスワードと回答を設定するように求められます(自分でコーディングしたものの、メンバーシップメソッドを使用して情報を格納します)。 aspnet_membershipテーブルは、ユーザーが最初にパスワードの質疑応答で作成されたかのようにします。

[パスワードを忘れた場合]ページで、Membership.Provider.GetPassword(username、passwordanswer)を使用しようとすると、パスワードの回答が間違っていてもパスワードが生成されます。

これは私に虚偽の手段にRequiresQuestionAndAnswerを設定するので、ASPNETの障害のように見えるでしょう:

「私は、ユーザーを作成するには、これを必要としませんが、私はまだそれを使用することができます」。 asp.netへの一方

手段です:

「私は、ユーザーを作成するには、これを必要とせず、私はそれを使用することは決してありませんので、それはどこでも無視されます。」

誰もがこの問題を回避する方法を知っていますか?私は提供されたセキュリティの答えが正しいことを確認し、リセットしたり、ユーザーのパスワードを取得する必要があります。暗号化されたパスワードを使用しているので、取得が可能でなければなりません。

+0

"暗号化されたパスワードを使用しているため、ハッシュされていないため、取得が可能です。" - [あなたのパスワードをハッシュしてください](http://stackoverflow.com/questions/325862/what-are-themost-common-security-mistakes-programmers-make/325870#325870)。 –

+0

@Chris - 暗号化は、パスワードがクリアに保存されていない限り、ハッシュの問題をある程度解決します。パスワードのテキストを回復できる必要がある場合は、これが唯一のオプションです。 –

答えて

1

ここにあるように、組み込みプロバイダの柔軟性はいくらか制限されています。この問題を解決する最善の方法は、あなたのアプリが質問と回答を生成して、あなたがそれを過ぎることができるようにすることです。

+0

ありがとう、私は本質的にちょうど後見で明白な同じ結論に到着した。質問と回答の両方にダミーの値を入力してから、パスワードの空白が空であるかどうかをチェックしていたダミーの値をチェックします。再度、感謝します。 – scaryjones

関連する問題