Exemple #1
0
        public IActionResult CambiarContraseña(Docente d, string contraseñaNueva1, string contraseñaNueva2)
        {
            rolesusuarioContext context = new rolesusuarioContext();
            DocentesRepository  repos   = new DocentesRepository(context);
            var docente = repos.Get(d.Id);

            try
            {
                if (docente != null)
                {
                    if (contraseñaNueva1 == contraseñaNueva2)
                    {
                        docente.Contraseña = contraseñaNueva1;
                        docente.Contraseña = HashingHelpers.GetHash(contraseñaNueva1);
                        repos.Update(docente);
                    }
                    else
                    {
                        ModelState.AddModelError("", "Las contraseñas no coinciden");
                        return(View(docente));
                    }
                }
                return(RedirectToAction("VerDocentes"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(docente));
            }
        }
Exemple #2
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));
            }
        }
Exemple #3
0
        public IActionResult AgregarDocente(Docente d)
        {
            rolesusuarioContext context = new rolesusuarioContext();
            DocentesRepository  repos   = new DocentesRepository(context);

            try
            {
                var existe = repos.GetDocenteByClave(d.Clave);
                if (existe != null)
                {
                    ModelState.AddModelError("", "Ya existe un docente con esta clave");
                    return(View(d));
                }
                else
                {
                    d.Activo     = 1;
                    d.Contraseña = HashingHelpers.GetHash(d.Contraseña);
                    repos.Insert(d);
                    return(RedirectToAction("VerDocentes"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(d));
            }
        }
 public IActionResult EliminarCuenta(string correo, string contra)
 {
     try
     {
         controlusuariosContext context    = new controlusuariosContext();
         Repository <Usuario>   repository = new Repository <Usuario>(context);
         var usuario = repository.ObtenerUsuarioPorCorreo(correo);
         if (usuario != null)
         {
             if (HashingHelpers.GetHash(contra) == usuario.Contraseña)
             {
                 repository.Eliminar(usuario);
             }
             else
             {
                 ModelState.AddModelError("", "La contraseña es incorrecta.");
                 return(View());
             }
         }
         return(RedirectToAction("IniciarSesion"));
     }
     catch (Exception)
     {
         ModelState.AddModelError("", "Ocurrió un error. Inténtelo más tarde.");
         return(View());
     }
 }
        public IActionResult Registrar(Usuario u, string contraseña, string contraseña2)
        {
            controlusuariosContext controlusuariosContext = new controlusuariosContext();

            try
            {
                if (controlusuariosContext.Usuario.Any(x => x.Correo == u.Correo))
                {
                    ModelState.AddModelError("", "Cuenta ya registrada con esta dirección de correo.");
                    return(View(u));
                }
                else
                {
                    if (contraseña == contraseña2)
                    {
                        Repository <Usuario> repos = new Repository <Usuario>(controlusuariosContext);
                        u.Contraseña = HashingHelpers.GetHash(contraseña);
                        u.Codigo     = Helper.GetCodigo();
                        u.Activo     = 0;
                        repos.Insertar(u);

                        MailMessage message = new MailMessage();
                        message.From = new MailAddress("*****@*****.**", "Servicio de streaming.");
                        message.To.Add(u.Correo);
                        message.Subject = "Activar cuenta";
                        string mensaje = System.IO.File.ReadAllText(Environment.WebRootPath + "/Inicio.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("Activar"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Las contraseñas ingresadas no coinciden");
                        return(View(u));
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(u));
            }
        }
Exemple #6
0
        public string GetGravatarUrl(string email)
        {
            if (string.IsNullOrEmpty(email))
            {
                return(DEFAULT_URL);
            }

            var emailHash = HashingHelpers.GetHash(email);

            return(string.Format(GRAVATAR_URL_FORMAT, emailHash));
        }
        public async Task <IActionResult> IniciarSesion(Usuario u, bool persistant)
        {
            controlcuentasContext Context = new controlcuentasContext();

            UsuarioRepository repos = new UsuarioRepository(Context);

            var usuario = repos.GetUsuarioByCorreo(u.Correo);

            if (usuario != null && HashingHelpers.GetHash(u.Contraseña) == usuario.Contraseña)
            {
                if (usuario.Activo == 1)
                {
                    List <Claim> informacion = new List <Claim>();

                    informacion.Add(new Claim(ClaimTypes.Name, "Usuario" + usuario.NombreUsuario));
                    informacion.Add(new Claim("Correo electronico", usuario.Correo));
                    informacion.Add(new Claim("Nombre Completo", usuario.NombreUsuario));
                    informacion.Add(new Claim("Fecha Ingreso", DateTime.Now.ToString()));


                    var claimsIdentity  = new ClaimsIdentity(informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                    var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                    if (persistant == true)
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = true });
                    }
                    else
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = false });
                    }

                    return(RedirectToAction("Entrada"));
                }
                else
                {
                    ModelState.AddModelError("", "La cuenta registrada con este correo electronico no esta activa");
                    return(View(u));
                }
            }
            else
            {
                ModelState.AddModelError("", "El usuario o la contraseña son incorrectas");
                return(View(u));
            }
        }
Exemple #8
0
        public async Task <IActionResult> IniciarSesionDocente(Docente d)
        {
            rolesusuarioContext context = new rolesusuarioContext();
            DocentesRepository  repos   = new DocentesRepository(context);

            var docente = repos.GetDocenteByClave(d.Clave);

            try
            {
                if (docente != null && docente.Contraseña == HashingHelpers.GetHash(d.Contraseña))
                {
                    if (docente.Activo == 1)
                    {
                        List <Claim> informacion = new List <Claim>();

                        informacion.Add(new Claim(ClaimTypes.Name, "Usuario" + docente.Nombre));
                        informacion.Add(new Claim("Clave", docente.Clave.ToString()));
                        informacion.Add(new Claim(ClaimTypes.Role, "Docente"));
                        informacion.Add(new Claim("Nombre Completo", docente.Nombre));
                        informacion.Add(new Claim("IdDocente", docente.Id.ToString()));

                        var claimsIdentity  = new ClaimsIdentity(informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                        var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = true });

                        return(RedirectToAction("Principal", docente.Clave));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Lo sentimos, su usuario esta desactivado, hable con su superior para activar la cuenta");
                        return(View(d));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "La clave de docente o la contraseña es incorrecta");
                    return(View(d));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(d));
            }
        }
Exemple #9
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 async Task <IActionResult> IniciarSesion(Usuario u, bool persistente)
        {
            controlusuariosContext controlusuariosContext = new controlusuariosContext();
            Repository <Usuario>   usuarioRepository      = new Repository <Usuario>(controlusuariosContext);
            var usuario = usuarioRepository.ObtenerUsuarioPorCorreo(u.Correo);

            if (usuario != null && HashingHelpers.GetHash(u.Contraseña) == usuario.Contraseña)
            {
                if (usuario.Activo == 1)
                {
                    List <Claim> informacion = new List <Claim>();
                    informacion.Add(new Claim(ClaimTypes.Name, "Usuario" + usuario.NombreUsuario));
                    informacion.Add(new Claim(ClaimTypes.Role, "Cliente"));
                    informacion.Add(new Claim("Correo", usuario.Correo));
                    informacion.Add(new Claim("Nombre", usuario.NombreUsuario));

                    var claimsIdentity  = new ClaimsIdentity(informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                    var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                    if (persistente == true)
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = true });
                    }
                    else
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = false });
                    }

                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("", "La cuenta registrada con este correo electronico no esta activa");
                    return(View(u));
                }
            }
            else
            {
                ModelState.AddModelError("", "El usuario o la contraseña son incorrectas");
                return(View(u));
            }
        }
        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));
            }
        }
        public IActionResult RecuperarContra(string correo)
        {
            try
            {
                controlusuariosContext context    = new controlusuariosContext();
                Repository <Usuario>   repository = new Repository <Usuario>(context);
                var usuario = repository.ObtenerUsuarioPorCorreo(correo);

                if (usuario != null)
                {
                    var         contraTemp = Helper.GetCodigo();
                    MailMessage mensaje    = new MailMessage();
                    mensaje.From = new MailAddress("*****@*****.**", "Servicio de streaming");
                    mensaje.To.Add(correo);
                    mensaje.Subject = "Recupera tu contraseña";
                    string text = System.IO.File.ReadAllText(Environment.WebRootPath + "/Recuperacion.html");
                    mensaje.Body       = text.Replace("{##contraTemp##}", contraTemp.ToString());
                    mensaje.IsBodyHtml = true;

                    SmtpClient cliente = new SmtpClient("smtp.gmail.com", 587);
                    cliente.EnableSsl             = true;
                    cliente.UseDefaultCredentials = false;
                    cliente.Credentials           = new NetworkCredential("*****@*****.**", "sistemas7g");
                    cliente.Send(mensaje);
                    usuario.Contraseña = HashingHelpers.GetHash(contraTemp.ToString());
                    repository.Editar(usuario);
                    return(RedirectToAction("IniciarSesion"));
                }
                else
                {
                    ModelState.AddModelError("", "El correo electrónico ingresado no está registrado.");
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View((object)correo));
            }
        }
        public IActionResult CambiarContra(string correo, string contraseña, string nuevaContraseña, string confirmarNuevaContraseña)
        {
            controlusuariosContext context    = new controlusuariosContext();
            Repository <Usuario>   repository = new Repository <Usuario>(context);

            try
            {
                var usuario = repository.ObtenerUsuarioPorCorreo(correo);

                if (usuario.Contraseña != HashingHelpers.GetHash(contraseña))
                {
                    ModelState.AddModelError("", "La contraseña ingresada no es correcta.");
                    return(View());
                }
                else
                {
                    if (nuevaContraseña != confirmarNuevaContraseña)
                    {
                        ModelState.AddModelError("", "Las contraseñas no coinciden.");
                        return(View());
                    }
                    else if (usuario.Contraseña == HashingHelpers.GetHash(nuevaContraseña))
                    {
                        ModelState.AddModelError("", "La nueva contraseña no puede ser igual a la actual.");
                        return(View());
                    }
                    else
                    {
                        usuario.Contraseña = HashingHelpers.GetHash(nuevaContraseña);
                        repository.Editar(usuario);
                        return(RedirectToAction("IniciarSesion"));
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View());
            }
        }
Exemple #14
0
        public async Task <IActionResult> IniciarSesionDirector(Director d)
        {
            rolesusuarioContext   context = new rolesusuarioContext();
            Repository <Director> repos   = new Repository <Director>(context);

            var director = context.Director.FirstOrDefault(x => x.Clave == d.Clave);

            try
            {
                if (director != null && director.Contraseña == HashingHelpers.GetHash(d.Contraseña))
                {
                    List <Claim> informacion = new List <Claim>();

                    informacion.Add(new Claim(ClaimTypes.Name, "Usuario" + director.Nombre));
                    informacion.Add(new Claim("Clave", director.Clave.ToString()));
                    informacion.Add(new Claim(ClaimTypes.Role, "Director"));
                    informacion.Add(new Claim("Nombre Completo", director.Nombre));
                    informacion.Add(new Claim("Fecha Ingreso", DateTime.Now.ToString()));

                    var claimsIdentity  = new ClaimsIdentity(informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                    var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                  new AuthenticationProperties { IsPersistent = true });

                    return(RedirectToAction("Principal"));
                }
                else
                {
                    ModelState.AddModelError("", "La clave de docente o la contraseña es incorrecta");
                    return(View(d));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(d));
            }
        }
        public IActionResult CambiarContraseña(string contraseñaNueva1, string correo, string contraseñaNueva2)
        {
            controlcuentasContext Context = new controlcuentasContext();
            UsuarioRepository     repos   = new UsuarioRepository(Context);


            var user = repos.GetUsuarioByCorreo(correo);

            try
            {
                if (contraseñaNueva1 == contraseñaNueva2)
                {
                    user.Contraseña = HashingHelpers.GetHash(contraseñaNueva1);
                    if (user.Contraseña == contraseñaNueva1)
                    {
                        ModelState.AddModelError("", "La nueva contraseña no puede ser igual a la ya registrada");
                        return(View(contraseñaNueva1));
                    }
                    else
                    {
                        repos.Update(user);

                        return(RedirectToAction("Entrada"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Las contraseñas no coinciden");
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(contraseñaNueva1, contraseñaNueva2));
            }
        }