Exemplo n.º 1
0
        public Tuple <ulong, ulong?, string> logar(Login login)
        {
            username = username.ToUpperInvariant();
            List <Usuario> listaUsuario = new List <Usuario>(1);

            try
            {
                using (Conexao.GetInstance)
                {
                    Conexao.Abrir();
                    ICRUD <Usuario> ControllerUsuario = new CtrlUsuario(Conexao.GetInstance);
                    listaUsuario = ControllerUsuario.Listar().ToList();
                    Conexao.Fechar();
                }
            }
            catch (Exception ex)
            {
                return(new Tuple <ulong, ulong?, string>(0, 0, ex.ToString()));
            }
            foreach (Usuario usuario in listaUsuario)
            {
                string curStoredUsername = usuario.Login.ToUpperInvariant();
                storedPassword = usuario.Senha;
                if (curStoredUsername == username)
                {
                    //OBS: IdUsuario e IdAcesso deveriam ser do tipo 'ulong' e 'ulong?', não 'int' e 'int?'.
                    id           = (ulong)usuario.IdUsuario;
                    idAcesso     = (ulong)usuario.IdAcesso;
                    validouSenha = CryptoHash.Verify(storedPassword, password);
                }
                else
                {
                    CryptoHash.Verify(storedPassword, password);
                }
            }
            if (validouSenha)
            {
                return(new Tuple <ulong, ulong?, string>(id, idAcesso, username));
            }
            return(new Tuple <ulong, ulong?, string>(0, 0, null));
        }