lundi 25 février 2019

Progress bar, mvc 5, controlador y validacion

me encuentro algo estancado sobre una validacion tengo la siguiente validacion: namespace Oronet.Web.Areas.Enrolamiento.Models { public class Validacion { public ValPass Validacioncontrasena(ValPass row) {

        try
       {
            row.Code = "danger";
            var mayuscula = false;
            var minuscula = false;
            var numero = false;
            var caracter_raro = false;
            Regex regex1 = new Regex(@"^(?=.*userid)\S{3,16}$");
            Regex regex2 = new Regex(row.Usuario);
            int i = 0;
            int a1 = 0;              
            // Regex regex = new Regex(@"^(?=\S*?[A-Z])(?=\S*?[a-z])(?=\S*?[0-9])(?=\S*?[!-/:-@[-`])\S{3,16}$");// valida ingreso de numeros, letras (?!.*(.)\1)
            if (row != null && row.Usuario != "" && row.Pass != "")
            {
                if (regex1.IsMatch(row.Pass) == false || regex2.IsMatch(row.Pass) == false)
                {

                    for (int j = 0; j < row.Pass.Length; j++) {
                    var c0a = row.Pass[j];
                    var c1a = Encoding.ASCII.GetBytes(c0a.ToString())[0];
                    if (row.Pass.Length >= 0 && row.Pass.Length <= 3)
                    {
                        if (c1a >= 97 && c1a <= 122)
                        {
                            // minuscula
                            minuscula = true;
                        }
                        else if (c1a >= 48 && c1a <= 57)
                        {
                            // numeros
                            numero = true;
                        }
                        else if (c1a >= 65 && c1a <= 90)
                        {
                            //letras mayusculas
                            mayuscula = true;
                        }
                        else
                        {
                            // caracteres especiales
                            caracter_raro = true;
                        }                            
                    }
                    else if (row.Pass.Length >= 4 && row.Pass.Length <= 7)
                    {                            
                            if (c1a >= 97 && c1a <= 122)
                            {
                                // minuscula
                                minuscula = true;
                            }
                            else if (c1a >= 48 && c1a <= 57)
                            {
                                //numeros
                                numero = true;
                            }
                            else if (c1a >= 65 && c1a <= 90)
                            {
                                //letras mayusculas
                                mayuscula = true;
                            }
                            else
                            {
                                // caracteres especiales
                                caracter_raro = true;
                            }    
                    }
                    else if (row.Pass.Length >= 8 && row.Pass.Length <= 16)
                    {
                             if (c1a >= 97 && c1a <= 122)
                            {
                                minuscula = true;

                            }
                            else if (c1a >= 48 && c1a <= 57)
                            {
                                numero = true;
                            }
                            else if (c1a >= 65 && c1a <= 90)
                            {
                                mayuscula = true;
                            }
                            else
                            {
                                // caracteres especiales
                                caracter_raro = true;
                            }                                                        
                    }
                }


                    for (i = 0; i < row.Pass.Length - 1; i++)
                    {
                        var c0 = row.Pass[i];
                        var ca = row.Pass[i + 1];
                        var c1 = Encoding.ASCII.GetBytes(c0.ToString())[0];
                        var c2 = c1 + 1;
                        var c3 = (char)c2;
                        var mayc3 = char.ToUpper(c3);
                        var minc3 = char.ToLower(c3);
                        var mayca = char.ToUpper(ca);
                        var minca = char.ToLower(ca);
                        if (mayc3 == ca || minc3 == ca)
                        {
                            row.Mensaje = "No se puede ingresar caracter consecutivo";
                            row.Code = "danger";
                            a1 = 1;
                            mayuscula = false;
                            minuscula = false;
                            numero = false;
                            caracter_raro = false;
                            break;
                        }

                        if (c0 == mayca || c0 == minca)
                        {
                            row.Mensaje = "No se puede ingresar caracter repetidos";
                            row.Code = "danger";
                            a1 = 1;
                            mayuscula = false;
                            minuscula = false;
                            numero = false;
                            caracter_raro = false;
                            break;
                        }
                        else if (a1 != 1)
                        {
                            if (row.Pass.Length >= 1 && row.Pass.Length <= 3)
                            {
                                if (mayuscula == true && minuscula == true && numero == true)
                                {
                                    row.Code = "danger";
                                }
                                else if (mayuscula == true && minuscula == true && caracter_raro == true)
                                {
                                    row.Code = "danger";
                                }
                                else if (mayuscula == true && numero == true && caracter_raro == true)
                                {
                                    row.Code = "danger";
                                }
                                else
                                {
                                    row.Code = "danger";
                                }
                            }
                            else if (row.Pass.Length >= 4 && row.Pass.Length <= 7)
                            {
                                if (regex1.IsMatch(row.Pass) != true || regex2.IsMatch(row.Pass) != true)
                                {
                                    if (mayuscula == true && minuscula == true && numero == true && caracter_raro == true)
                                    {
                                        row.Code = "warning";
                                    }                                       
                                    else
                                    {
                                        row.Code = "danger";
                                    }
                                }
                                else
                                {
                                    row.Mensaje = "no se puede ingresar el usuario";
                                    row.Code = "danger";
                                }
                            }
                            else if (row.Pass.Length >= 8 && row.Pass.Length <= 16)
                            {

                                if (mayuscula == true && minuscula == true && numero == true && caracter_raro == true)
                                {
                                    row.Code = "success";
                                }                                   
                                else
                                {
                                    row.Code = "danger";
                                }                                   
                            }
                            else
                            {
                                row.Mensaje = "contraseña invalida";
                                row.Code = "danger";
                            }
                        }

                    }
            }
            else
            {                    
                row.Mensaje = "contraseña invalida";
                row.Code = "danger";
            }

        }
                else {
                    row.Mensaje = "no se puede ingresar el usuario";
                    row.Code = "danger";
                }               
            if (row.Pass == row.confipass)
            {
                row.a1 = 1;                   
            }               
            row.Usuario = "";
            row.Pass = "";
            row.confipass = "";
        }
        catch (Exception ex)
        {
            row.Error = false;
            row.Mensaje = ex.Message;
        }




        return row;
    }
}

}

su clase para guardar estos datos luce asi: namespace Oronet.Web.Areas.Enrolamiento.Models { public class ValPass { public string Pass { set; get; } public string Usuario { set; get; } public string Code { set; get; } public string Mensaje { set; get; } public bool Error { set; get; } public string confipass { set; get; } public int a1 { set; get; } } }

mi problema es con esta linea:

if (regex1.IsMatch(row.Pass) == false || regex2.IsMatch(row.Pass) == false) se supone que al declarar estos regex1 y regex2 de esta forma

Regex regex1 = new Regex(@"^(?=.*userid)\S{3,16}$"); le digo que en el campo contraseña si existe la palabra userid

Regex regex2 = new Regex(row.Usuario); y aqui lo mismo busco que coincida es decir, que el nombre de usuario no este en el campo contraseña pero esta linea no funciona, de existir las dos coincidencias que sea verdad entra por aqui

       else
            {                    
                row.Mensaje = "contraseña invalida";
                row.Code = "danger";
            }

lo que trato de hacer es que al crear nuevo usuario si el usuario digita en el campo contraseña userid o elnombre de usuario que escoga, asi automaticamente, marque rojo

Aucun commentaire:

Enregistrer un commentaire