Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }