public static bool VerificarPoliticasContrasena(string contrasena, out int cantidadMinimaMayusculas, out int cantidadMinimaNumeros, out int longitudMaxima, out int longitudMinima, out int cantidadMinimaEspeciales) { Dictionary <string, string> dPars = DParametros.TraerParametros( "SeguridadContrasena.CantidadMinimaEspeciales", "SeguridadContrasena.LongitudMaxima", "SeguridadContrasena.LongitudMinima", "SeguridadContrasena.CantidadMinimaNumeros", "SeguridadContrasena.CantidadMinimaMayusculas"); cantidadMinimaEspeciales = Convert.ToInt32(dPars["SeguridadContrasena.CantidadMinimaEspeciales"]); cantidadMinimaMayusculas = Convert.ToInt32(dPars["SeguridadContrasena.CantidadMinimaMayusculas"]); cantidadMinimaNumeros = Convert.ToInt32(dPars["SeguridadContrasena.CantidadMinimaNumeros"]); longitudMaxima = Convert.ToInt32(dPars["SeguridadContrasena.LongitudMaxima"]); longitudMinima = Convert.ToInt32(dPars["SeguridadContrasena.LongitudMinima"]); if (contrasena.Length < longitudMinima) { return(false); } else if (contrasena.Length > longitudMaxima) { return(false); } int contadorNumeros = 0, contadorMayusculas = 0, contadorEspeciales = 0; foreach (Char caracter in contrasena.ToCharArray()) { if (char.IsDigit(caracter)) { contadorNumeros++; } else if (char.IsUpper(caracter)) { contadorMayusculas++; } if (!char.IsLetterOrDigit(caracter)) { contadorEspeciales++; } } if (contadorNumeros < cantidadMinimaNumeros || contadorMayusculas < cantidadMinimaMayusculas || contadorEspeciales < cantidadMinimaEspeciales) { return(false); } return(true); }
/******** VALOR/REGISTRO ÚNICO *********/ /********** VARIOS REGISTROS ***********/ public static Dictionary <string, string> TraerParametros(params string[] codigos) { return(DParametros.TraerParametros(codigos)); }