public IActionResult Registrar(Usuario u, string contraseña1, string contraseña2) { controlusuariosContext Context = new controlusuariosContext(); //Para agregar el usuario a la base de datos try { //Revisar que no exista una cuenta con ese correo if (Context.Usuario.Any(x => x.Correo == u.Correo)) { ModelState.AddModelError("", "Ya existe una cuenta registrada con este correo"); return(View(u)); } else { if (contraseña1 == contraseña2) { Repository <Usuario> repos = new Repository <Usuario>(Context); u.Contraseña = HashingHelpers.GetHash(contraseña1); u.Codigo = CodigoHelper.GetCodigo(); u.Activo = 0; repos.Insert(u); //Esto es para enviar el correo MailMessage message = new MailMessage(); message.From = new MailAddress("*****@*****.**", "Music+"); message.To.Add(u.Correo); message.Subject = "Confirma tu correo"; //Leo el documento html para enviarlo string mensaje = System.IO.File.ReadAllText(Environment.WebRootPath + "/Correo.html"); message.IsBodyHtml = true; message.Body = mensaje.Replace("{##Codigo##}", u.Codigo.ToString()); SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("*****@*****.**", "sistemas7g"); client.Send(message); List <Claim> informacion = new List <Claim>(); informacion.Clear(); informacion.Add(new Claim("CorreoActivar", u.Correo)); return(RedirectToAction("ActivarCuenta")); } else { ModelState.AddModelError("", "Las contraseñas no coinciden"); return(View(u)); } } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(u)); } }
public IActionResult RecuperarContraseña(string correo) { try { controlusuariosContext Context = new controlusuariosContext(); UsuarioRepository repos = new UsuarioRepository(Context); //Repository<Usuario> repos = new Repository<Usuario>(Context); var user = repos.GetUsuarioByCorreo(correo); if (user != null) { var contraseñaTemporal = CodigoHelper.GetCodigo(); MailMessage message = new MailMessage(); message.From = new MailAddress("*****@*****.**", "Music+"); message.To.Add(correo); message.Subject = "Recupera tu contraseña"; string mensaje = System.IO.File.ReadAllText(Environment.WebRootPath + "/RecuperarContraseña.html"); message.IsBodyHtml = true; message.Body = mensaje.Replace("{##contrasena##}", contraseñaTemporal.ToString()); SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("*****@*****.**", "sistemas7g"); client.Send(message); user.Contraseña = HashingHelpers.GetHash(contraseñaTemporal.ToString()); repos.Update(user); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "El correo no esta registrado"); return(View()); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View((object)correo)); } }
public IActionResult RecuperarContraseña(string correo) { try { controlcuentasContext Context = new controlcuentasContext(); UsuarioRepository repos = new UsuarioRepository(Context); var user = repos.GetUsuarioByCorreo(correo); if (user != null) { var contraseñaTemporal = CodigoHelper.GetCodigo(); MailMessage message = new MailMessage(); message.From = new MailAddress("*****@*****.**", "AnimeFull"); message.To.Add(correo); message.Subject = "Recupera tu contraseña"; message.Body = $"Utiliza esta contraseña temporal para ingresar a tu cuenta, recuerda que una vez que ingreses deberas cambiarla: {contraseñaTemporal} "; SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("*****@*****.**", "sistemas7g"); client.Send(message); user.Contraseña = HashingHelpers.GetHash(contraseñaTemporal.ToString()); repos.Update(user); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "El correo no esta registrado"); return(View()); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View((object)correo)); } }