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)); } }
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 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)); } }
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)); } }
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)); } }
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()); } }
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)); } }