Как мне управлять форматом MembershipUser.ResetPassword () - PullRequest
10 голосов
/ 09 января 2009

Можно ли управлять форматом пароля, который автоматически генерируется при вызове MembershipUser.ResetPassword ()?

Я хочу разрешить или запретить использование определенных специальных символов в сгенерированном пароле.

Я использую SqlMembershipProvider с паролем в формате Hashed.

Спасибо.

Ответы [ 4 ]

19 голосов
/ 09 апреля 2009

Вы можете сделать это в два шага, как определил Марк Фитцпатрик здесь: http://bytes.com/groups/net-asp/689452-how-reset-users-password-without-having-use-passwordrecovery#post2740740

Сначала сбросьте пароль, затем сразу измените его на формат, который вам нравится. Очевидно, что использовать фиксированную строку, как в примере Марка, НЕ рекомендуется - вам нужно реализовать некоторый генератор случайных строк .

user.ChangePassword(user.ResetPassword(), MyMethodToGenerateRandomPassword());
3 голосов
/ 12 июня 2012

Сегодня вы также можете использовать метод Membership.GeneratePassword и передать MinRequiredPasswordLength или использовать свойство, уже определенное в Web.config, например:

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

  user.ChangePassword(user.ResetPassword(), newPassword);
1 голос
/ 09 января 2009

Посмотрите эту статью - Изменение автоматически сгенерированного формата пароля в SqlMembershipProvider .

Я предложил быстрый способ взлома SqlMembershipProvider для генерации менее сложных паролей, и это было так же просто, как создать новый класс провайдера, который наследуется от SqlMembershipProvider, а затем переопределить метод GeneratePassword.

Это не полностью решенное решение, но оно может помочь.

0 голосов
/ 09 января 2009

Я надеялся, что будет какой-то параметр конфигурации, который можно использовать, но переопределение метода GeneratePassword () работает для моей ситуации.

У нас уже был класс утилиты шифрования, который генерировал бы строки случайных паролей, так что это было довольно быстрое изменение.

...