Поставщик членства ASP.Net: пользовательское создание пользователя

В моем учебнике указано, что по умолчанию для действительного пароля «требуется ввести не менее семи символов, один из которых не является буквенно-цифровым». Я определенно делаю это. Я получаю сообщение об ошибке: «Предоставленный ответ на пароль недействителен». Вот код в файле aspx:

<div id="loginBlock">
    First Name: <asp:TextBox ID="fname" runat="server"></asp:TextBox>&nbsp;&nbsp;
    Last Name: <asp:TextBox ID="lname" runat="server"></asp:TextBox><br />
    Username: <asp:TextBox ID="userName" runat="server"></asp:TextBox><br />
    Password: <asp:TextBox ID="passwd" runat="server" TextMode="Password"></asp:TextBox><br />
    Confirm Password: <asp:TextBox ID="passwdConfirm" runat="server" 
        TextMode="Password"></asp:TextBox>
    &nbsp;<asp:CompareValidator ID="validatePasswd"  CssClass="vaidator" ControlToValidate="passwdConfirm" ControlToCompare="passwd" runat="server" ErrorMessage="Passwords don't match! Re-enter."></asp:CompareValidator><br />
    Email:  <asp:TextBox ID="email" runat="server"></asp:TextBox><br />
    Confirm Email: <asp:TextBox ID="emailConfirm" runat="server"></asp:TextBox>
    &nbsp;<asp:CompareValidator ID="validateEmail"   CssClass="vaidator" ControlToValidate="emailConfirm" ControlToCompare="email" runat="server" ErrorMessage="Passwords don't match! Re-enter."></asp:CompareValidator><br />
    <asp:Button ID="submit" runat="server" Text="JOIN" onclick="submit_Click" /><br /><br />
    <asp:TextBox ID="loginError" CssClass="vaidator" runat="server" Width="300px" ReadOnly="True" 
        BorderStyle="None" Font-Size="0.9em" Rows="2"></asp:TextBox>
</div>

А вот код события нажатия кнопки:

 protected void submit_Click(object sender, EventArgs e)
        {
            try
            {
                Membership.CreateUser(userName.Text, passwdConfirm.Text, email.Text);
            }
            catch (MembershipCreateUserException)
            {
                loginError.Text = "Password must be a minumum of 7 characters and contain at least one non-alphanumeric character";
            }
        }

Заранее спасибо!


person Susan    schedule 10.08.2011    source источник
comment
Как выглядит ваша конфигурация членства в файле web.config?   -  person David Hoerster    schedule 10.08.2011


Ответы (1)


Похоже, вы включили вопросы и ответы в настройках безопасности. Найдите в файле web.config раздел поставщика членства и убедитесь, что requiresQuestionAndAnswer="false".

В вашем файле web.config у вас должен быть раздел, определяющий настройки провайдера членства, что-то вроде этого:

<membership>
  <providers>
    <clear/>
      <add name="AspNetSqlMembershipProvider" passwordStrengthRegularExpression="^.*(?=^[^\s]{8,32}$)(?=.*[a-zA-Z])(?=.*[\d]).*$" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ConnSTR" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="20" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/myApp"/>
  </providers>
</membership>

Бит, который вам нужно установить:

requiresUniqueEmail="false"
person Ira Rainey    schedule 10.08.2011
comment
‹roleManager enabled=true /› ‹режим аутентификации=Forms/› ‹отладка компиляции=true targetFramework=4.0 /› - person Susan; 10.08.2011
comment
Это значения в моем файле web.config. Нужно ли мне добавлять этот оператор? - person Susan; 10.08.2011
comment
У меня нет этого раздела. Создает ли это настройка аутентификации или мне нужно сделать это вручную, то есть я где-то пропустил шаг? - person Susan; 10.08.2011
comment
Он не добавляет его автоматически. Прочтите эту статью для получения дополнительной информации о MembershipProvider: 4guysfromrolla.com/articles/120705-1 .aspx - person Ira Rainey; 10.08.2011
comment
Большое спасибо! Это моя первая попытка с поставщиком членства. С Уважением! - person Susan; 10.08.2011