public ActionResult RecuperarSenha(String login) { if (ModelState.IsValid) { UsuarioAtivo usuarioAtivo = models.consultarUsuarioAtivoPorLogin(login); if (usuarioAtivo != null) { try { var salt = Crypto.SHA1(usuarioAtivo.Email + DateTime.Today + usuarioAtivo.DataRegistro); models.editarSalt(usuarioAtivo, salt); enviarEmail(usuarioAtivo, salt); TempData["Sucesso"] = "Um link para redefinição de senha foi enviado para seu e-mail ^^"; } catch (SmtpException e) { TempData["Erro"] = e.Message; } } else { TempData["Erro"] = "Não encontramos nenhum usuário cadastrado com esse e-mail :/"; } } return(RedirectToAction("Login", "Home")); }
public bool editarUsuarioAtivo(UsuarioAtivo usuarioAtivo, string salt) { bool valida = true; try { if (ValidarSenha(usuarioAtivo.Senha)) { usuarioAtivo.Senha = Hash.CriarSenhaHash(usuarioAtivo.Senha, salt); usuarioAtivo.Salt = salt; db.Entry(usuarioAtivo).State = EntityState.Modified; db.SaveChanges(); } else { valida = false; } } catch (Exception ex) { // } return(valida); }
public ActionResult RedefinirSenha(RedefinicaoSenhaViewModels viewModels) { if (ModelState.IsValid) { try { UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId(viewModels.IdUsuarioAtivo); usuarioAtivo.Senha = viewModels.Senha; var salt = Crypto.SHA1(usuarioAtivo.Senha); if (!models.editarUsuarioAtivo(usuarioAtivo, salt)) { ModelState.AddModelError("PasswordError", "Algo está errado em sua senha :/ Sua senha deve possuir no mínimo 7 caracteres, sendo obrigatório conter pelo menos um dígito, um caractere especial e uma letra maiúscula"); } else { TempData["Sucesso"] = "Sua senha foi redefinida. Entre com seu usuário e sua nova senha ^^"; return(RedirectToAction("Index")); } } catch (Exception e) { TempData["Erro"] = "Parece que houve um erro ao redefinir sua senha :/"; } } else { ModelState.AddModelError("FieldsError", "Alguns campos não estão preenchidos corretamente :/"); } return(View()); }
public JsonResult Excluir(int?id) { if (Session["UsuarioAtivoId"] == null) { return(Json("", JsonRequestBehavior.AllowGet)); //return Json(null, JsonRequestBehavior.AllowGet); } try { UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId((int)id); var usuariosPassivos = usuarioAtivo.UsuariosPassivos.ToList <UsuarioPassivo>(); if (usuariosPassivos != null) { models.excluirTodosUsuariosPassivos(usuariosPassivos); } if (ModelState.IsValid) { models.excluirUsuarioAtivo(usuarioAtivo); return(Json("", JsonRequestBehavior.AllowGet)); } return(Json("Erro")); } catch (Exception ex) { return(Json("Erro de comunicação com o banco de dados. - " + ex.Message)); } }
public ActionResult Login(string email, string senha) { if (ModelState.IsValid) { UsuarioAtivo user = models.VerificarUsuario(email, senha); if (user != null) { Session["UsuarioAtivoNome"] = user.Nome; Session["UsuarioAtivoId"] = user.Id; FormsAuthentication.SetAuthCookie(user.Nome, false); return(RedirectToAction("Index", "Evento")); } else { ModelState.AddModelError("", "O usuário ou senha estão incorretos :/"); } } else { var errors = ModelState.Values.SelectMany(v => v.Errors).ToString(); ModelState.AddModelError("", errors); } return(View()); }
public UsuarioAtivo retornarUsuarioLogado() { var userId = Convert.ToInt32(HttpContext.Current.Session["UsuarioAtivoId"]); UsuarioAtivo us = db.UsuariosAtivos.FirstOrDefault(a => a.Id == userId); return(us); }
public ActionResult Editar(UsuarioAtivoViewModels usuarioAtivoViewModels) { if (ModelState.IsValid) { try { UsuarioAtivo usuarioAtivo = new UsuarioAtivo(); usuarioAtivo.Id = usuarioAtivoViewModels.Id; usuarioAtivo.Nome = usuarioAtivoViewModels.Nome; usuarioAtivo.Sobrenome = usuarioAtivoViewModels.Sobrenome; usuarioAtivo.Endereco = usuarioAtivoViewModels.Endereco; usuarioAtivo.Telefone = usuarioAtivoViewModels.Telefone; usuarioAtivo.Email = usuarioAtivoViewModels.Email; usuarioAtivo.Senha = usuarioAtivoViewModels.Senha; // models.editarUsuarioAtivo(usuarioAtivo, salt); TempData["Sucesso"] = "Seus dados foram atualizados ^^"; return(RedirectToAction("Index")); } catch (Exception e) { TempData["Erro"] = "Houve algum erro ao atualizar seus dados ><"; } } else { ModelState.AddModelError("FieldsError", "VAlguns campos não estão preenchidos corretamente :/"); } return(View()); }
public void inserirUsuarioPassivo(UsuarioPassivo usuarioPassivo) { var id = Convert.ToInt32(HttpContext.Current.Session["UsuarioAtivoId"]); UsuarioAtivo us = db.UsuariosAtivos.SingleOrDefault(a => a.Id == id); usuarioPassivo.UsuarioAtivo = us; db.UsuariosPassivos.Add(usuarioPassivo); db.SaveChanges(); }
public ActionResult Visualizar(int?id) { if (Session["UsuarioAtivoId"] == null) { return(RedirectToAction("Login", "Home")); } UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId((int)id); return(View(usuarioAtivo)); }
public void excluirUsuarioAtivo(UsuarioAtivo usuarioAtivo) { try { db.Entry(usuarioAtivo).State = EntityState.Deleted; db.SaveChanges(); } catch (Exception ex) { // } }
public bool editarSalt(UsuarioAtivo usuarioAtivo, string salt) { bool valida = true; try { usuarioAtivo.Salt = salt; db.Entry(usuarioAtivo).State = EntityState.Modified; db.SaveChanges(); } catch (Exception ex) { // } return(valida); }
public UsuarioAtivo consultarUsuarioAtivoPorLogin(string login) { var usuarioAtivo = new UsuarioAtivo(); try { usuarioAtivo = db.UsuariosAtivos.Where(a => a.Email == login).FirstOrDefault(); if (usuarioAtivo != null) { return(usuarioAtivo); } } catch (Exception ex) { throw; } return(usuarioAtivo); }
public UsuarioAtivo consultarUsuarioAtivoPorSalt(string salt) { var usuarioAtivo = new UsuarioAtivo(); try { usuarioAtivo = db.UsuariosAtivos.Where(a => a.Salt == salt).FirstOrDefault(); if (usuarioAtivo != null) { return(usuarioAtivo); } } catch (Exception ex) { throw; } return(usuarioAtivo); }
public bool inserirUsuarioAtivo(UsuarioAtivo usuarioAtivo) { bool valida = true; if (ValidarSenha(usuarioAtivo.Senha)) { var salt = Crypto.GenerateSalt(); usuarioAtivo.Senha = Hash.CriarSenhaHash(usuarioAtivo.Senha, salt); usuarioAtivo.Salt = salt; db.UsuariosAtivos.Add(usuarioAtivo); db.SaveChanges(); } else { valida = false; } return(valida); }
public ActionResult Inserir(UsuarioAtivoViewModels usuarioAtivoViewModels) { if (ModelState.IsValid) { UsuarioAtivo usuarioAtivo = new UsuarioAtivo(); usuarioAtivo.Id = usuarioAtivoViewModels.Id; usuarioAtivo.Nome = usuarioAtivoViewModels.Nome; usuarioAtivo.Sobrenome = usuarioAtivoViewModels.Sobrenome; usuarioAtivo.Endereco = usuarioAtivoViewModels.Endereco; usuarioAtivo.Telefone = usuarioAtivoViewModels.Telefone; usuarioAtivo.Email = usuarioAtivoViewModels.Email; usuarioAtivo.Senha = usuarioAtivoViewModels.Senha; if (usuarioAtivoViewModels.Sexo == "1") { usuarioAtivo.Sexo = 1; } else { usuarioAtivo.Sexo = 2; } if (!models.inserirUsuarioAtivo(usuarioAtivo)) { ModelState.AddModelError("PasswordError", "Algo está errado em sua senha :/ Sua senha deve possuir no mínimo 7 caracteres, sendo obrigatório conter pelo menos um dígito, um caractere especial e uma letra maiúscula"); } else { TempData["Sucesso"] = "Bem vindo ao Mazul! \\o/ Entre com seu login e senha e aproveite todos os recursos que preparamos para você!"; return(RedirectToAction("Login", "Home")); } } else { ModelState.AddModelError("FieldsError", "Alguns campos não estão preenchidos corretamente :/"); } return(View()); }
public JsonResult RecuperarDados(int?id) { if (Session["UsuarioAtivoId"] == null) { return(Json(new { redirectUrl = Url.Action("Login", "Home"), isRedirect = true })); } try { UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId((int)id); var usuarioAtivoViewModels = new UsuarioAtivoViewModels(); usuarioAtivoViewModels.Id = usuarioAtivo.Id; usuarioAtivoViewModels.Nome = usuarioAtivo.Nome; usuarioAtivoViewModels.Sobrenome = usuarioAtivo.Sobrenome; usuarioAtivoViewModels.Endereco = usuarioAtivo.Endereco; usuarioAtivoViewModels.Telefone = usuarioAtivo.Telefone; usuarioAtivoViewModels.Email = usuarioAtivo.Email; if (usuarioAtivo.Sexo == 1) { usuarioAtivoViewModels.Sexo = "Masculino"; } else { usuarioAtivoViewModels.Sexo = "Feminino"; } return(Json(usuarioAtivoViewModels, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { return(Json("Erro de comunicação com o banco de dados. - " + ex.Message)); } }
public UsuarioAtivo VerificarUsuario(string email, string senha) { var usuarioAtivo = new UsuarioAtivo(); try { db.Database.Connection.Open(); usuarioAtivo = db.UsuariosAtivos.Where(a => a.Email == email).FirstOrDefault(); if (usuarioAtivo != null) { if (usuarioAtivo.Senha == Hash.CriarSenhaHash(senha, usuarioAtivo.Salt)) { return(usuarioAtivo); } } } catch (Exception ex) { throw; } return(usuarioAtivo); }
private void enviarEmail(UsuarioAtivo usuarioAtivo, string salt) { string body = @"<html><body> <p>Olá! <br /><br />" + usuarioAtivo.Nome + " " + usuarioAtivo.Sobrenome + ", você solicitou pelo nosso site ajuda para recuperar sua senha. Para voltar a aproveitar todas os recursos de nosso site você precisa criar uma nova senha, para isso basta clicar no link a seguir: </p> <p><strong>http://localhost:6272/usuarioAtivo/redefinirsenha/" + salt + "</strong></p><br /><p>Fácil né?! Esperamos que tudo dê certo! ^^ <br /><br /> Atenciosamente, Mazul.</p></body></html>"; try { MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**", "Redefinição de senha - MAZUL", body); mail.From = new MailAddress("*****@*****.**", "Mazul"); mail.IsBodyHtml = true; // necessary if you're using html email NetworkCredential credential = new NetworkCredential("*****@*****.**", "Asdzxc123$"); SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.EnableSsl = true; smtp.UseDefaultCredentials = false; smtp.Credentials = credential; smtp.Send(mail); } catch (SmtpException e) { Console.WriteLine(e); throw new SmtpException("Parece que houve um problema e não conseguimos enviar para seu e-mail o link de recuperação de senha. >< Mas fique tranquilo, já estamos solucionando o problema o/"); } }