10

MembershipUser.ResetPassword() の呼び出しによって自動的に生成されるパスワードの形式を制御することはできますか?

生成されたパスワードで特定の特殊文字を許可または禁止できるようにしたいと考えています。

パスワード形式が Hashed の SqlMembershipProvider を使用しています。

ありがとう。

4

4 に答える 4

20

Mark Fitzpatrickがここで特定しているように、これを2つのステップで実行することをお勧めします:http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740

最初にパスワードをリセットし、すぐに好みの形式に変更します。明らかに、Markの例のように固定文字列を使用することはお勧めしません。ランダムな文字列ジェネレータを実装する必要があります。

user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
于 2009-04-09T14:09:22.167 に答える
3

現在、このメソッドを使用して、次のように Web.config で既に定義されているプロパティMembership.GeneratePasswordを渡したり使用したりすることもできます。MinRequiredPasswordLength

  var newPassword =
                   // 0 = Number of non alphanumeric characters
                  Membership.GeneratePassword(Membership.MinRequiredPasswordLength, 0);

  user.ChangePassword(user.ResetPassword(), newPassword);
于 2012-06-12T04:00:08.120 に答える
1

この記事をご覧ください-SqlMembershipProviderで自動生成されたパスワード形式を変更します

SqlMembershipProviderをハックして、それほど複雑でないパスワードを生成する簡単な方法を思いつきました。それは、SqlMembershipProviderから継承する新しいプロバイダークラスを作成し、GeneratePasswordメソッドをオーバーライドするのと同じくらい簡単でした。

これは完全に解決された解決策ではありませんが、役立つ場合があります。

于 2009-01-09T02:55:50.990 に答える
0

いくつかの構成設定で使用できることを期待していましたが、GeneratePassword()メソッドをオーバーライドすることは私の状況では機能します。

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

于 2009-01-09T03:12:03.500 に答える