Beispiel #1
0
        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));
            }
        }
Beispiel #2
0
        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));
            }
        }