ASP.NET Членство подтвердить пароль - PullRequest
2 голосов
/ 07 июня 2009

Я использую членство в ASP.NET для управления пользователями на моем сайте. Но мне нужно создавать учетные записи пользователей вручную, без помощи мастера CreateUserWizard. Я установил текстовые поля для обязательных полей, и теперь я настраиваю валидаторы.

Вопрос: как мне создать валидатор, который бы видел, действителен ли пароль, введенный пользователем в текстовое поле?

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

Ответы [ 3 ]

3 голосов
/ 26 января 2010

Кажется, нет простого пути. Однако вы можете использовать Membership.CreateUser, который принимает MembershipCreateStatus параметр.

Если пароль действителен, созданный пользовательский объект будет нулевым, а для MembershipCreateStatus будет установлено значение InvalidPassword (или любой другой статус создания).

Пример:

MembershipCreateStatus membershipCreateStatus;
MembershipUser newUser = Membership.CreateUser(userName, password, email, passwordQuestion, passwordAnswer, true, out membershipCreateStatus);

// Check if the user was created succesfully
if (newUser == null)
{
    // membershipCreateStatus contains the information why the creation was not successful
    if (membershipCreateStatus == MembershipCreateStatus.InvalidPassword)
    {
        // The password doesn't match the requirements
    }
}
0 голосов
/ 01 сентября 2009

Что вы возражаете против использования (варианта) мастера CreateUserWizard? Если это связано с необходимостью дополнительных полей или макета, есть способы обойти это:

  1. Как: настроить мастер CreateUserWizard - Ознакомьтесь с разделом «Настройка шагов мастера CreateUserWizard».
  2. Адаптеры дружественного управления CSS ASP.NET 2.0 (они будут встроены в ASP.NET 4.0)

Но даже мастер CreateUserWizard по умолчанию не выполняет проверку пароля на стороне клиента, я думаю, именно по этой причине: (

0 голосов
/ 07 июня 2009

Вы можете динамически установить регулярное выражение валидатора регулярного выражения.

private void Page_Load(object sender, EventArgs e)
{
    passwordValidator.ValidationExpression = someConfiguration.GetPasswordValidationExpression();
}
...