質問

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()メソッドのオーバーライドは私の状況では機能します。

ランダムなパスワード文字列を生成する暗号ユーティリティクラスがすでにあるため、非常に迅速な変更でした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top