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 Activar(int codigo) { controlusuariosContext context = new controlusuariosContext(); Repository <Usuario> repository = new Repository <Usuario>(context); var usuario = context.Usuario.FirstOrDefault(x => x.Codigo == codigo); if (usuario != null && usuario.Activo == 0) { var code = usuario.Codigo; if (codigo == code) { usuario.Activo = 1; repository.Editar(usuario); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "El código ingresado no coincide con el original."); return(View((object)codigo)); } } else { ModelState.AddModelError("", "El usuario no existe."); return(View((object)codigo)); } }
public IActionResult EliminarCuenta(string correo, string contra) { try { controlusuariosContext context = new controlusuariosContext(); UsuarioRepository <Usuarios> repository = new UsuarioRepository <Usuarios>(context); var usuario = repository.ObtenerUsuarioPorCorreo(correo); if (usuario != null) { if (HashHelper.GetHash(contra) == usuario.Contrasena) { repository.Eliminar(usuario); } else { ModelState.AddModelError("", "La contraseña está incorrecta."); return(View()); } } return(RedirectToAction("Index")); } catch (Exception) { ModelState.AddModelError("", "Ocurrió un error. Inténtelo en unos minutos."); return(View()); } }
public IActionResult ActivarCuenta(int codigo) { controlusuariosContext Context = new controlusuariosContext(); UsuarioRepository repos = new UsuarioRepository(Context); var user = Context.Usuario.FirstOrDefault(x => x.Codigo == codigo); if (user != null && user.Activo == 0) { var cod = user.Codigo; if (codigo == cod) { user.Activo = 1; repos.Update(user); return(RedirectToAction("IniciarSesion")); } else { ModelState.AddModelError("", "El codigo no coincide"); return(View((object)codigo)); } } else { ModelState.AddModelError("", "No se encontro el usuario"); return(View((object)codigo)); } }
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 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)); } }
public IActionResult Registrar(Usuarios usuario, string contraseña1, string contraseña2) { controlusuariosContext context = new controlusuariosContext(); UsuarioRepository <Usuarios> repository = new UsuarioRepository <Usuarios>(context); try { if (context.Usuarios.Any(x => x.Correo == usuario.Correo)) { ModelState.AddModelError("", "Este correo electrónico ya se encuentra registrado."); return(View(usuario)); } else { if (contraseña1 == contraseña2) { usuario.Contrasena = HashHelper.GetHash(contraseña1); usuario.Codigo = CodeHelper.GetCode(); usuario.Activo = 0; repository.Insertar(usuario); MailMessage mensaje = new MailMessage(); mensaje.From = new MailAddress("*****@*****.**", "OursCafé"); mensaje.To.Add(usuario.Correo); mensaje.Subject = "Confirma tu correo electrónico en OursCafé"; string text = System.IO.File.ReadAllText(Environment.WebRootPath + "/ConfirmarCorreo.html"); mensaje.Body = text.Replace("{##codigo##}", usuario.Codigo.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); return(RedirectToAction("Activar")); } else { ModelState.AddModelError("", "Las contraseñas no son iguales."); return(View(usuario)); } } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(usuario)); } }
public async Task <IActionResult> IniciarSesion(Usuario u, bool persistant) { controlusuariosContext Context = new controlusuariosContext(); 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())); //Hay que instanciar un claims principal al que se le asigna un claims identity 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)); } }
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 Eliminar(string correo) { controlusuariosContext Context = new controlusuariosContext(); UsuarioRepository repos = new UsuarioRepository(Context); var user = repos.GetUsuarioByCorreo(correo); if (user != null) { repos.Delete(user); } else { ModelState.AddModelError("", "Ha ocurrido un error"); return(View("Entrada")); } return(RedirectToAction("Index")); }
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 async Task <IActionResult> IniciarSesion(Usuarios usuario, bool persistente) { controlusuariosContext context = new controlusuariosContext(); UsuarioRepository <Usuarios> repository = new UsuarioRepository <Usuarios>(context); var datos = repository.ObtenerUsuarioPorCorreo(usuario.Correo); if (datos != null && HashHelper.GetHash(usuario.Contrasena) == datos.Contrasena) { if (datos.Activo == 1) { List <Claim> info = new List <Claim>(); info.Add(new Claim(ClaimTypes.Name, "Usuario" + datos.Nombre)); //info.Add(new Claim(ClaimTypes.Role, "Cliente")); info.Add(new Claim("Correo", datos.Correo)); info.Add(new Claim("Nombre", datos.Nombre)); var claimsidentity = new ClaimsIdentity(info, 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("", "Esta cuenta aún no ha sido activada. Necesita ir a su correo y activarla"); return(View(usuario)); } } else { ModelState.AddModelError("", "Sus credenciales son incorrectas."); return(View(usuario)); } }
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()); } }
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 contra, string nuevaContraseña1, string nuevaContraseña2) { controlusuariosContext context = new controlusuariosContext(); UsuarioRepository <Usuarios> repository = new UsuarioRepository <Usuarios>(context); try { var usuario = repository.ObtenerUsuarioPorCorreo(correo); if (usuario.Contrasena != HashHelper.GetHash(contra)) { ModelState.AddModelError("", "La contraseña que ingresó es incorrecta."); return(View()); } else { if (nuevaContraseña1 != nuevaContraseña2) { ModelState.AddModelError("", "Las nuevas contraseñas no son iguales."); return(View()); } else if (usuario.Contrasena == HashHelper.GetHash(nuevaContraseña1)) { ModelState.AddModelError("", "La nueva contraseña no puede ser igual a la actual."); return(View()); } else { usuario.Contrasena = HashHelper.GetHash(nuevaContraseña1); repository.Editar(usuario); return(RedirectToAction("IniciarSesion")); } } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View()); } }
public IActionResult CambiarContraseña(string contraseñaNueva1, string correo, string contraseñaNueva2) { controlusuariosContext Context = new controlusuariosContext(); UsuarioRepository repos = new UsuarioRepository(Context); //Repository<Usuario> repos = new Repository<Usuario>(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)); } }
public Repository(controlusuariosContext ctx) { Context = ctx; }
public HomeController(controlusuariosContext ctx) { context = ctx; }
public UsuarioRepository(controlusuariosContext context) : base(context) { }
public UsuarioRepository(controlusuariosContext context) { Context = context; }