形式MembershipUser.ResetPassword()を制御する方法
-
06-07-2019 - |
質問
MembershipUser.ResetPassword()の呼び出しによって自動的に生成されるパスワードの形式を制御することは可能ですか?
生成されたパスワードに特定の特殊文字を許可または許可しないようにしたい。
ハッシュ形式のパスワード形式でSqlMembershipProviderを使用しています。
ありがとう。
解決
この記事をご覧ください- SqlMembershipProviderで自動生成されたパスワード形式を変更する。
SqlMembershipProviderをハッキングして簡単なパスワードを生成する簡単な方法を思い付きました。それは、SqlMembershipProviderを継承する新しいプロバイダークラスを作成し、GeneratePasswordメソッドをオーバーライドするのと同じくらい簡単でした。
これは完全に解決されたソリューションではありませんが、役立つ場合があります。
他のヒント
次の2つのステップでこれを行うことができます。MarkFitzpatrickは次のとおりです。 http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-password-covery#post2740740
最初にパスワードをリセットし、すぐに好みの形式に変更します。明らかにマークの例のように固定文字列を使用することはお勧めしません-ランダムな文字列ジェネレーター。
user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
今日は、 Membership.GeneratePassword
メソッドを使用して MinRequiredPasswordLength
を渡すか、Web.configで既に定義されている次のようなプロパティを使用することもできます。
var newPassword =
// 0 = Number of non alphanumeric characters
Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);
user.ChangePassword(user.ResetPassword(), newPassword);
いくつかの構成設定が使用できることを期待していましたが、GeneratePassword()メソッドのオーバーライドは私の状況では機能します。
ランダムなパスワード文字列を生成する暗号ユーティリティクラスがすでにあるため、非常に迅速な変更でした。