Проверка на стороне клиента значения текстового поля пароля

#asp.net #validation #client-side

#asp.net #проверка #на стороне клиента

Вопрос:

У меня есть веб-форма для отправки данных нового пользователя. В этом поле для пароля используется текстовое поле. Для этого требуется проверка, поскольку «оно должно содержать минимум 8 символов, по крайней мере, с одним не буквенно-цифровым символом». Я предоставляю проверку для этого в файле веб-конфигурации как:-

 <membership defaultProvider="SQLMembershipProvider">
  <providers>
      <remove name="SQLMembershipProvider"/>
        <add name="SQLMembershipProvider" connectionStringName="DAFEConnection" minRequiredPasswordLength="8" minRequiredNonalphanumericCharacters="1"   type="System.Web.Security.SqlMembershipProvider" applicationName="WBCPDA" requiresQuestionAndAnswer="false" enablePasswordReset="true" maxInvalidPasswordAttempts="4" passwordAttemptWindow="15" requiresUniqueEmail="true"/>
            </providers>
        </membership>
  

Эта проверка запускается на стороне сервера, т. е. когда я нажимаю кнопку «Отправить».
Я ХОЧУ ПРОВЕРИТЬ ТО ЖЕ САМОЕ на СТОРОНЕ КЛИЕНТА, т. Е. Как только он введет нежелательное значение в текстовом поле.

Пожалуйста, помогите

Ответ №1:

Самый быстрый способ сделать это — использовать средство проверки регулярных выражений. Смотрите документацию здесь.

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

Дополнительный ответ:

Сложно найти самый быстрый способ предоставить вам точный код, который будет работать в вашем случае, поскольку вы не предоставили разметку; но вы могли бы сделать что-то похожее на это :

 <asp:button id="btnSubmit" runat="server" OnClientClick="return validate_pass();" OnClick="YourHandler" />
  

И будет использовать функцию javascript.Средство проверки регулярных выражений. Смотрите документацию здесь.

 function validate_pass()
{
    //txtPassword is assumed to be the id of the password text field on your page
    var passField = document.getElementById('<%=txtPassword.ClientID%>');
    if(passField.value.length<8)
    {  
       alert('Password must contain at least 8 characters');
       return false; 
    }
    return true;
}
  

Комментарии:

1. Icarus — Спасибо за беспокойство. Но решение, которое вы дали, заключается в том, чтобы написать мою собственную пользовательскую проверку для проверки текстового поля пароля на стороне клиента. На самом деле, я хочу реализовать проверку на стороне клиента во встроенном asp.net ‘SqlMembershipProvider’. Есть ли способ?

2. @Kings: Ну, да, вы могли бы использовать RegularExpressionValidator и прикрепить его к полю вашего пароля. Пример здесь: msdn.microsoft.com/en-us/library /…

3. lcarus: Я предполагаю, что невозможно использовать эту функциональность членства в sql для проверки на стороне клиента. Указанный вами метод возможен только, и это фактически проверка текстового поля пароля, а не проверка пароля участника.

4. спасибо в любом случае. пожалуйста, опубликуйте предыдущий код, который у вас был. я воспользуюсь этим для справки. спасибо

Ответ №2:

Вы можете использовать плагины javascript или jQuery для проверки правил ввода паролей на стороне клиента. Вы можете обратиться к http://plugins .jquery.com/plugin-tags/password-validation или http://bassistance.de/jquery-plugins/jquery-plugin-password-validation /. Вы даже можете развернуть свой собственный код javascript и использовать RegEx для проверки.