public String RegrasSenhaExplicativo() { String _explicativo = String.Empty; _explicativo += "Deve conter, no mínimo, " + QtdeMinimaCaracteres.ToString() + " caracteres"; _explicativo += "<br/>Não pode conter Espaços"; _explicativo += "<br/>Não pode conter 3 caracteres repetidos em sequência"; if (QtdeMinimaLetrasMaiusculas > 0) { _explicativo += "<br/>Precisa conter, no mínimo, " + QtdeMinimaLetrasMaiusculas.ToString() + " Letra" + (String)(QtdeMinimaLetrasMaiusculas > 1 ? "s" : "") + " Maiúscula" + (String)(QtdeMinimaLetrasMaiusculas > 1 ? "s" : ""); _explicativo += "<br/>Sua nova senha precisa conter também Letras Minúsculas"; } if (QtdeMinimaCaracteresNumericos > 0) { _explicativo += "<br/>Precisa conter, no mínimo, " + QtdeMinimaCaracteresNumericos.ToString() + " Número" + (String)(QtdeMinimaCaracteresNumericos > 1 ? "s" : ""); } if (QtdeMinimaCaracteresEspeciais > 0) { _explicativo += "<br/>Precisa conter, no mínimo, " + QtdeMinimaCaracteresEspeciais.ToString() + " Caracter" + (String)(QtdeMinimaCaracteresEspeciais > 1 ? "es" : "") + " Especia" + (String)(QtdeMinimaCaracteresEspeciais > 1 ? "is" : "l"); } if (QtdeSenhaAnteriores > 0) { _explicativo += "<br/>Sua nova senha não pode ter sido utilizada na" + (String)(QtdeSenhaAnteriores > 1 ? "s" : "") + " sua" + (String)(QtdeSenhaAnteriores > 1 ? "s" : "") + " última" + (String)(QtdeSenhaAnteriores > 1 ? "s" : "") + " " + QtdeSenhaAnteriores.ToString() + " Senha" + (String)(QtdeSenhaAnteriores > 1 ? "s" : "") + " Anterior" + (String)(QtdeSenhaAnteriores > 1 ? "es" : "") + ""; } return(_explicativo); }
public Boolean ValidarSenha(String senha, ref String erromsg) { String caracteres_permitidos = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM 1234567890 çÇáéíóúýÁÉÍÓÚÝàèìòùÀÈÌÒÙãõñäëïöüÿÄËÏÖÜÃÕÑâêîôûÂÊÎÔÛ !@#$%¨&*() -=_+ \\ | ,.;/<>:? ~]^} ´[`{ °ªº§¬¢£"; //Boolean eh_senha_valida = false; Char caracter; //String cnet_feedback = String.Empty; Int16 countLetrasMaiusculas = 0; Int16 countLetrasMinusculas = 0; Int16 countCarateresEspeciais = 0; Int16 countCarateresNumericos = 0; Int16 countCharRepetido = 0; Char ultimoCaracter = '\0'; erromsg = String.Empty; // Checa Tamanho Minimo if (senha.Length < QtdeMinimaCaracteres) { ValidacaoSenhaErroMsg(ref erromsg, "Senha deve conter, no mínimo, " + QtdeMinimaCaracteres.ToString() + " caracteres"); return(false); } for (Int16 pointer = 0; pointer <= (senha.Length - 1); pointer++) { caracter = Convert.ToChar(senha.Substring(pointer, 1)); //cnet_feedback += "\n\ncaracter: '" + caracter.ToString() + "'"; //if (Char.IsSymbol(caracter)) { cnet_feedback += "\n IsSymbol = " + Char.IsSymbol(caracter).ToString(); } //if (Char.IsPunctuation(caracter)) { cnet_feedback += "\n IsPunctuation = " + Char.IsPunctuation(caracter).ToString(); } //if (Char.IsDigit(caracter)) { cnet_feedback += "\n IsDigit = " + Char.IsDigit(caracter).ToString(); } //if (Char.IsUpper(caracter)) { cnet_feedback += "\n IsUpper = " + Char.IsUpper(caracter).ToString(); } //if (Char.IsLower(caracter)) { cnet_feedback += "\n IsLower = " + Char.IsLower(caracter).ToString(); } //if (Char.IsLetter(caracter)) { cnet_feedback += "\n IsLetter = " + Char.IsLetter(caracter).ToString(); } //if (Char.IsWhiteSpace(caracter)) { cnet_feedback += "\n IsWhiteSpace = " + Char.IsWhiteSpace(caracter).ToString(); } ////if (Char.IsSeparator(caracter)) { cnet_feedback += "\n IsSeparator = " + Char.IsSeparator(caracter).ToString(); } //if (Char.IsSurrogate(caracter)) { cnet_feedback += "\n IsSurrogate = " + Char.IsSurrogate(caracter).ToString(); } //if (Char.IsHighSurrogate(caracter)) { cnet_feedback += "\n IsHighSurrogate = " + Char.IsHighSurrogate(caracter).ToString(); } //if (Char.IsLowSurrogate(caracter)) { cnet_feedback += "\n IsLowSurrogate = " + Char.IsLowSurrogate(caracter).ToString(); } //if (Char.IsControl(caracter)) { cnet_feedback += "\n IsControl = " + Char.IsControl(caracter).ToString(); } ////continue; if (caracteres_permitidos.IndexOf(caracter.ToString()) < 0) { ValidacaoSenhaErroMsg(ref erromsg, "Caracter '" + caracter.ToString() + "' não é permitido nas senhas"); //return eh_senha_valida; } // Space permitido não é permitido if (Char.IsWhiteSpace(caracter)) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha não pode conter Espaços"); //return eh_senha_valida; } if (Char.IsUpper(caracter)) { countLetrasMaiusculas++; } if (Char.IsLower(caracter)) { countLetrasMinusculas++; } if (Char.IsDigit(caracter)) { countCarateresNumericos++; } if (Char.IsSymbol(caracter) || Char.IsPunctuation(caracter)) { countCarateresEspeciais++; } // // Caracter repetido // if (caracter == ultimoCaracter) { countCharRepetido++; } else { countCharRepetido = 0; } if (countCharRepetido >= 2) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha não pode conter caracteres '" + new String(caracter, 3) + "' repetidos em sequência"); } ultimoCaracter = caracter; } // // Checando Letras Maiusculas // if (QtdeMinimaLetrasMaiusculas > 0) { if (countLetrasMaiusculas < QtdeMinimaLetrasMaiusculas) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha precisa conter, no mínimo, " + QtdeMinimaLetrasMaiusculas.ToString() + " Letra" + (String)(QtdeMinimaLetrasMaiusculas > 1 ? "s" : "") + " Maiúscula" + (String)(QtdeMinimaLetrasMaiusculas > 1 ? "s" : "")); //return eh_senha_valida; } if (countLetrasMinusculas == 0) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha precisa conter também Letras Minúsculas"); //return eh_senha_valida; } } // // Checando Caracteres Numéricos // if (QtdeMinimaCaracteresNumericos > 0) { if (countCarateresNumericos < QtdeMinimaCaracteresNumericos) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha precisa conter, no mínimo, " + QtdeMinimaCaracteresNumericos.ToString() + " Número" + (String)(QtdeMinimaCaracteresNumericos > 1 ? "s" : "")); //return eh_senha_valida; } } // // Checando Caracteres Especiais // if (QtdeMinimaCaracteresEspeciais > 0) { if (countCarateresEspeciais < QtdeMinimaCaracteresEspeciais) { ValidacaoSenhaErroMsg(ref erromsg, "Sua nova senha precisa conter, no mínimo, " + QtdeMinimaCaracteresEspeciais.ToString() + " Caracter" + (String)(QtdeMinimaCaracteresEspeciais > 1 ? "es" : "") + " Especia" + (String)(QtdeMinimaCaracteresEspeciais > 1 ? "is" : "l")); //return eh_senha_valida; } } if (String.IsNullOrEmpty(erromsg)) { return(true); } else { return(false); } //return eh_senha_valida; }