コード例 #1
0
        public ActionResult Login(ViewLogin login, string returnUrl)
        {
            string message = "";

            if (ModelState.IsValid)
            {
                Usuario usuarioLogin = usuarioServico.GetUsuariosByEmail().Where(a => a.Email == login.Email).FirstOrDefault();
                if (usuarioLogin != null)
                {
                    if (usuarioLogin.ContaAtiva)
                    {
                        login.Senha = Crypto.Hash(login.Senha);
                        if (string.Compare(login.Senha, usuarioLogin.Senha) == 0)
                        {
                            string perfil = "Cliente";
                            if (usuarioLogin.IsAdmin == true)
                            {
                                perfil = "Gerente";
                            }
                            FormsAuthentication.SignOut();
                            var ticket = FormsAuthentication.Encrypt(new FormsAuthenticationTicket(1, login.Email, DateTime.Now, DateTime.Now.AddHours(12), false, perfil));
                            var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, ticket);
                            Response.Cookies.Add(cookie);
                            Session["User"]     = usuarioLogin;
                            Session["UserName"] = usuarioLogin.Nome.Split(' ')[0];
                            if (Url.IsLocalUrl(returnUrl))
                            {
                                return(Redirect(returnUrl));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Index"));
                            }
                        }
                        else
                        {
                            message = "E-mail ou senha inválida";
                        }
                    }
                    else
                    {
                        message = "Conta desativada.";
                    }
                }
                else
                {
                    message = "E-mail ou senha inválida";
                }
            }
            ViewBag.Message = message;
            return(View());
        }
コード例 #2
0
        public ActionResult CreateStepOne([Bind(Exclude = "VerificacaoEmail, CodigoAtivacao")] Usuario usuario)
        {
            #region
            //try
            //{
            //    if (Session["User"] == null) {
            //        Session["User"] = usuario;
            //    }
            //    return RedirectToAction("CreateStepTwo", "Usuario");
            //}
            #endregion
            try
            {
                bool   Status   = false;
                string mensagem = "";
                //Validação do modelo
                if (ModelState.IsValid)
                {
                    var checkEmail = usuarioServico.GetUsuariosByEmail().FirstOrDefault(e => e.Email == usuario.Email);
                    var checkCpf   = usuarioServico.GetUsuariosByCpf().FirstOrDefault(e => e.Cpf == usuario.Cpf);
                    if (checkEmail == null && checkCpf == null)
                    {
                        #region Gerar código de ativação
                        Random random          = new Random();
                        string numeroAleatorio = string.Empty;
                        for (int i = 0; i < 6; i++)
                        {
                            numeroAleatorio += random.Next(0, 10).ToString();
                        }
                        usuario.CodigoAtivacao = numeroAleatorio;
                        #endregion

                        #region Criptografia de senha
                        usuario.Senha          = Crypto.Hash(usuario.Senha);
                        usuario.ConfirmarSenha = Crypto.Hash(usuario.ConfirmarSenha);
                        #endregion

                        #region Validação de campos
                        usuario.Telefone = Regex.Replace(usuario.Telefone, @"[^0-9a-zA-Z]+", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));
                        usuario.Cpf      = Regex.Replace(usuario.Cpf, @"[^0-9a-zA-Z]+", "", RegexOptions.None, TimeSpan.FromSeconds(1.5));
                        #endregion

                        usuario.VerificacaoEmail = false;

                        #region Salvar no banco de dados
                        //usuarioServico.SaveUsuario(usuario);
                        #endregion

                        #region Enviar email de validação
                        EnviarEmail(usuario.Email, usuario.CodigoAtivacao);
                        #endregion
                    }
                    else
                    {
                        if (checkEmail != null)
                        {
                            ModelState.AddModelError("EmailExistente", "● Email inserido já cadastrado");
                        }
                        if (checkCpf != null)
                        {
                            ModelState.AddModelError("CPFExistente", "● CPF inserido já cadastrado");
                        }
                        return(View());
                    }

                    mensagem = "Conta registrada com sucesso. Um email de ativação foi enviada para você.";
                    Status   = true;
                }
                else
                {
                    mensagem = "Requisição inválida.";
                    return(View());
                }
                ViewBag.Message = mensagem;
                ViewBag.Status  = Status;
                Session["User"] = usuario;
                return(RedirectToAction("CreateStepTwo", "Cadastro"));
            }
            catch
            {
                return(View());
            }
        }