コード例 #1
0
        public JsonResult CriarUsuario(PocoUsuario poco)
        {
            ApiResposta resposta = new ApiResposta();

            try
            {
                if (poco.ValidaEmail && poco.ValidaSenha)
                {
                    Usuario usuario = new Usuario();
                    usuario.Poco = poco;
                    var retorno = usuario.Autenticar(true);
                    resposta.Retorno  = (retorno ? Retornos.verdadeiro : Retornos.falso).ToString();
                    resposta.Mensagem = usuario.Mensagem;
                    resposta.Id       = usuario.Id;
                }
                else
                {
                    throw new Exception(ErroRequisicaoNegada);
                }
            }
            catch (Exception e)
            {
                resposta.Retorno  = Retornos.falso.ToString();
                resposta.Mensagem = "Criar usuário : " + e.Message;
                //se acontecer um erro, vou remover o controle de acesso para liberar uma proxima tentativa
                System.Web.HttpRuntime.Cache.Remove("CriarUsuario-" + Request.UserHostAddress);
                Util.LogError(e);
            }

            return(Json(resposta, "application/json", JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
        public JsonResult Autenticar(PocoUsuario poco)
        {
            ApiResposta resposta = new ApiResposta();

            try
            {
                if (poco.ValidaEmail && poco.ValidaSenha)
                {
                    Usuario usuario = new Usuario();
                    usuario.Poco = poco;
                    var retorno = usuario.Autenticar();
                    resposta.Retorno  = (retorno ? Retornos.verdadeiro : Retornos.falso).ToString();
                    resposta.Mensagem = usuario.Mensagem;
                    resposta.Id       = usuario.Id;
                }
                else
                {
                    throw new Exception(ErroRequisicaoNegada);
                }
            }
            catch (Exception e)
            {
                resposta.Retorno  = Retornos.falso.ToString();
                resposta.Mensagem = "Autenticar o usuário : " + e.Message;
                Util.LogError(e);
            }

            return(Json(resposta, "application/json", JsonRequestBehavior.AllowGet));
        }
コード例 #3
0
        private bool Add(PocoUsuario usuario)
        {
            var sql = @"
                insert into Usuario (Nome,Email,Senha,DataHora) 
                values (@pnome,@pemail,@psenha,Now())
            ";

            param = new Dictionary <string, object>();
            param.Add("pnome", usuario.Nome);
            param.Add("pemail", usuario.Email);
            param.Add("psenha", usuario.Senha);

            return(DB.Save(sql, param) > 0);
        }
コード例 #4
0
        internal bool Autenticar(bool cadastrar)
        {
            PocoUsuario usuarioExterno = Poco;
            PocoUsuario usuarioInterno = Get(usuarioExterno.Email);

            //Email está cadastrado na base
            if (usuarioInterno != null)
            {
                //Senhas iguais
                if (usuarioExterno.Senha == usuarioInterno.Senha)
                {
                    //Usuário verificado
                    if (usuarioInterno.Verificado == 1)
                    {
                        Id       = usuarioInterno.Id;
                        Mensagem =
                            "Usuário verificado";

                        return(true);
                    }
                    //Usuário não verificado
                    else
                    {
                        var hash = Util.GerarHashMd5(usuarioInterno.Email + usuarioInterno.Senha);

                        var url = Util.Config("Api:Url") + "/ValidarAcesso?email=" + usuarioInterno.Email + "&hash=" + hash;

                        var conteudo = "Olá " + usuarioInterno.Nome + ", para validar seu acesso no aplicativo, por favor, <a href='" + url + "' target='_blank'>clique aqui</a> ou copie e cole a URL (" + url + ") no browser";

                        Util.EnviaEmail(usuarioInterno.Email, "Validar acesso no aplicativo", conteudo);

                        Mensagem =
                            "Usuário não verificado, acesse sua conta de email [" + usuarioExterno.Email + "] e clique no link que enviamos, para validar o seu acesso";

                        return(false);
                    }
                }
                //Senhas diferentes
                else
                {
                    Mensagem =
                        "A senha informada não é valida, verifique os dados e tente novamente";
                    return(false);
                }
            }
            //Usuário não existe
            else
            {
                //solicitação de cadastro de usuário
                if (cadastrar)
                {
                    if (!usuarioExterno.ValidaNome)
                    {
                        Mensagem =
                            "Informe o nome do usuário com 3 ou mais caracteres";
                        return(false);
                    }

                    if (!usuarioExterno.ValidaEmail)
                    {
                        Mensagem =
                            "Email informado não é valido";
                        return(false);
                    }

                    var cadastrou = Add(usuarioExterno);
                    if (cadastrou)
                    {
                        var hash = Util.GerarHashMd5(usuarioExterno.Email + usuarioExterno.Senha);

                        var url = Util.Config("Api:Url") + "/ValidarAcesso?email=" + usuarioExterno.Email + "&hash=" + hash;

                        var conteudo = "Olá " + usuarioExterno.Nome + ", seu cadastro foi realizado com sucesso. Para validar seu acesso no aplicativo, por favor, <a href='" + url + "' target='_blank'>clique aqui</a> ou copie e cole a URL (" + url + ") no browser";

                        Util.EnviaEmail(usuarioExterno.Email, "Cadastrado com sucesso. Confirme seu acesso.", conteudo);

                        Mensagem =
                            "Usuário cadastrado com sucesso, acesse sua conta de email [" + usuarioExterno.Email + "] e clique no link que enviamos, para validar o seu acesso";
                    }
                    else
                    {
                        Mensagem = "Estranho!!! Não foi possivel cadastrar o usuário [" + usuarioExterno.Email + "]." + Util.Alerta;
                    }

                    return(false);
                }
                //tentou logar com usuário que não existe
                else
                {
                    Mensagem =
                        "Usuário informado não existe";
                    return(false);
                }
            }
        }