public ActionResult AsignaUsuarios([Bind(Include = "id_rol,id_usuario")] AsignaUsuarioRolViewModel Rol) { c_rol c_rol = db.c_rol.Find(Rol.id_rol); if (c_rol == null) { return(HttpNotFound()); } try { c_rol.c_usuario.Clear(); if (Rol.id_usuario == null) { db.SaveChanges(); return(RedirectToAction("Index")); } foreach (int id_usr in Rol.id_usuario) { c_usuario u = db.c_usuario.Find(id_usr); c_rol.c_usuario.Add(u); } db.SaveChanges(); return(RedirectToAction("Index")); } catch { ViewBag.nb_rol = c_rol.nb_rol; string sql = "select id_usuario from c_rol_usuario where id_rol = " + Rol.id_rol; var usuarios = db.Database.SqlQuery <int>(sql).ToArray(); ViewBag.usuarios = new MultiSelectList(db.c_usuario.OrderBy(x => x.nb_usuario), "id_usuario", "nb_usuario", usuarios); return(View(Rol)); } }
// GET: Inicio public ActionResult Index() { ViewBag.Mensaje = "false"; c_usuario model = new c_usuario(); return(View(model)); }
public ActionResult AsignaRol([Bind(Include = "id_usuario,id_rol")] AsignaRolUsuarioViewModel Usuario) { c_usuario c_usuario = db.c_usuario.Find(Usuario.id_usuario); if (c_usuario == null) { return(HttpNotFound()); } try { c_usuario.c_rol.Clear(); if (Usuario.id_rol == null) { db.SaveChanges(); return(RedirectToAction("Index")); } foreach (int id_rl in Usuario.id_rol) { c_rol r = db.c_rol.Find(id_rl); c_usuario.c_rol.Add(r); } db.SaveChanges(); return(RedirectToAction("Index")); } catch { ViewBag.nb_usuario = c_usuario.nb_usuario; string sql = "select id_rol from c_rol_usuario where id_usuario = " + Usuario.id_usuario; var roles = db.Database.SqlQuery <int>(sql).ToArray(); ViewBag.roles = new MultiSelectList(db.c_rol.OrderBy(x => x.nb_rol), "id_rol", "nb_rol", roles); return(View(Usuario)); } }
public ActionResult Edit(c_usuario c_usuario) { if (ModelState.IsValid) { c_usuario user = db.c_usuario.Find(c_usuario.id_usuario); if (c_usuario.esta_activo) { c_usuario.id_estatus_usuario = 2; } if (user.password != c_usuario.password) { c_usuario.password = SeguridadUtilidades.SHA256Encripta(c_usuario.password); c_usuario.fe_cambio_password = DateTime.Now; c_usuario.fe_ultimo_acceso = DateTime.Now; //Agregamos la contraseña al historico del usuario h_password Pass = new h_password(); Pass.id_usuario = c_usuario.id_usuario; Pass.password = c_usuario.password; Pass.fe_actualizacion = DateTime.Now; db.h_password.Add(Pass); //fijamos el id en 1 para que su estatus sea nuevo, y se requiera un cambio de contraseña if (c_usuario.id_estatus_usuario != 4) { c_usuario.id_estatus_usuario = 1; } } user.cl_usuario = c_usuario.cl_usuario; user.nb_usuario = c_usuario.nb_usuario; user.password = c_usuario.password; user.email_principal = c_usuario.email_principal; user.no_telefono = c_usuario.no_telefono; user.esta_activo = c_usuario.esta_activo; user.nb_puesto = c_usuario.nb_puesto; user.es_super_usuario = c_usuario.es_super_usuario; user.id_estatus_usuario = c_usuario.id_estatus_usuario; /*db.Entry(c_usuario).State = EntityState.Modified;*/ try { db.SaveChanges(); return(RedirectToAction("Index")); } catch (Exception ex) { int ErrorCode = Int32.Parse(ex.InnerException.InnerException.HResult.ToString()); if (ErrorCode == -2146232060) { ModelState.AddModelError("es_super_usuario", "Asegurese de que la clave y el Correo electrónico principal no esten en uso."); } System.Console.WriteLine(""); } } return(View(c_usuario)); }
// GET: Usuario/Delete/5 public ActionResult Delete(int?id, string redirect = null) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } c_usuario c_usuario = db.c_usuario.Find(id); if (c_usuario == null) { return(HttpNotFound()); } if (redirect != null) { if (redirect != "bfo") { //obtenemos el valor del numero de salto int ns; try { ns = (int)HttpContext.Session["JumpCounter"]; } catch { ns = 0; } //Si ns es 0, creamos un nuevo array, agregamos la direccion actual y lo asignamos a la variable "Directions" y establecemos "JumpCounter" = 1 if (ns == 0) { List <string> directions = new List <string>(); directions.Add(redirect); HttpContext.Session["JumpCounter"] = 1; HttpContext.Session["Directions"] = directions; }//En caso de que ns sea distinto a 0, obtenemos el Array "Directions", agregamos la direccion actual, aumentamos el contador y salvamos ambas variables globales else { ns++; List <string> directions = (List <string>)HttpContext.Session["Directions"]; directions.Add(redirect); HttpContext.Session["JumpCounter"] = ns; HttpContext.Session["Directions"] = directions; } } } else { HttpContext.Session["JumpCounter"] = null; HttpContext.Session["Directions"] = null; } return(View(c_usuario)); }
public ActionResult Create(c_usuario c_usuario) { if (ModelState.IsValid) { c_usuario.fe_cambio_password = DateTime.Now; c_usuario.id_estatus_usuario = 1; db.c_usuario.Add(c_usuario); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.id_estatus_usuario = new SelectList(db.c_estatus_usuario, "id_estatus_usuario", "nb_estatus_usuario", c_usuario.id_estatus_usuario); return(View(c_usuario)); }
// GET: Usuario/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } c_usuario c_usuario = db.c_usuario.Find(id); if (c_usuario == null) { return(HttpNotFound()); } return(View(c_usuario)); }
public ActionResult ChangePassword([Bind(Include = "original_password,password,new_password,repeat_password")] CambiarContrasenaViewModel cambio) { IdentityPersonalizado ident = (IdentityPersonalizado)ControllerContext.HttpContext.User.Identity; if (ModelState.IsValid) { string newPass = SeguridadUtilidades.SHA256Encripta(cambio.new_password); c_usuario c_usuario = db.c_usuario.Find(ident.Id_usuario); h_password Pass = new h_password(); Pass.id_usuario = c_usuario.id_usuario; Pass.password = newPass; Pass.fe_actualizacion = DateTime.Now; db.h_password.Add(Pass); c_usuario.password = newPass; c_usuario.id_estatus_usuario = 2; c_usuario.fe_cambio_password = DateTime.Now; db.SaveChanges(); HttpContext.Session["SCC"] = "false"; return(RedirectToAction("Success")); } string scc; try { scc = HttpContext.Session["SCC"].ToString(); } catch { scc = "false"; } if (scc == "true") { ViewBag.Mensaje = "La contraseña actual fue establecida por el administrador, por favor ingrese una nueva."; } else { ViewBag.Mensaje = "false"; } return(View()); }
public ActionResult Editar(EditarDatosUsuarioViewModel cambio) { IdentityPersonalizado ident = (IdentityPersonalizado)ControllerContext.HttpContext.User.Identity; if (ModelState.IsValid) { c_usuario c_usuario = db.c_usuario.Find(ident.Id_usuario); c_usuario.nb_usuario = cambio.nb_usuario; c_usuario.email_principal = cambio.email_principal; c_usuario.no_telefono = cambio.no_telefono; c_usuario.nb_puesto = cambio.nb_puesto; db.SaveChanges(); FormsAuthentication.SignOut(); return(RedirectToAction("Index", "Home", "")); } return(View(cambio)); }
public ActionResult AsignaRol(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } c_usuario c_usuario = db.c_usuario.Find(id); if (c_usuario == null) { return(HttpNotFound()); } AsignaRolUsuarioViewModel Usuario = new AsignaRolUsuarioViewModel(); Usuario.id_usuario = c_usuario.id_usuario; ViewBag.nb_usuario = c_usuario.nb_usuario; string sql = "select id_rol from c_rol_usuario where id_usuario = " + Usuario.id_usuario; var roles = db.Database.SqlQuery <int>(sql).ToArray(); ViewBag.roles = new MultiSelectList(db.c_rol.OrderBy(x => x.nb_rol), "id_rol", "nb_rol", roles); return(View(Usuario)); }
public UsuarioMembership(c_usuario us) { Id_usuario = us.id_usuario; Cl_usuario = us.cl_usuario; Nb_usuario = us.nb_usuario; Password = us.password; Email_principal = us.email_principal; No_telefono = us.no_telefono; Esta_activo = us.esta_activo; Es_super_usuario = us.es_super_usuario; Nb_puesto = us.nb_puesto; Id_estatus_usuario = us.id_estatus_usuario; // ?? 2; Fe_cambio_password = us.fe_cambio_password ?? DateTime.Now; try { Fe_ultimo_acceso = (DateTime)HttpContext.Current.Session["UltimoAcceso"]; } catch { Fe_ultimo_acceso = DateTime.Now; } Funciones = utilidades.ObtenerFunciones(us.id_usuario); }
public ActionResult unlockUser(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } c_usuario c_usuario = db.c_usuario.Find(id); if (c_usuario == null) { return(HttpNotFound()); } c_usuario.id_estatus_usuario = 2; c_usuario.esta_activo = true; c_usuario.fe_cambio_password = DateTime.Now; c_usuario.fe_ultimo_intento_acceso = DateTime.Now; c_usuario.no_intento_acceso = 0; db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Agregar(c_usuario c_usuario) { if (ModelState.IsValid) { c_usuario.esta_activo = true; c_usuario.id_estatus_usuario = 1; c_usuario.password = SeguridadUtilidades.SHA256Encripta(c_usuario.password); c_usuario.fe_cambio_password = DateTime.Now; db.c_usuario.Add(c_usuario); try { db.SaveChanges(); //Agregamos la contraseña al historico del usuario h_password Pass = new h_password(); Pass.id_usuario = c_usuario.id_usuario; Pass.password = c_usuario.password; Pass.fe_actualizacion = DateTime.Now; db.h_password.Add(Pass); return(RedirectToAction("Index")); } catch (Exception ex) { int ErrorCode = Int32.Parse(ex.InnerException.InnerException.HResult.ToString()); if (ErrorCode == -2146232060) { ModelState.AddModelError("es_super_usuario", "Asegurese de que la clave y el Correo electrónico principal no esten en uso."); } System.Console.WriteLine(""); } } return(View(c_usuario)); }
public ActionResult Index(c_usuario model) { string pass = model.password; var listUsers = db.c_usuario.ToList(); try { model = db.c_usuario.Where(u => u.email_principal == model.email_principal).First(); } catch { ViewBag.Mensaje = "false"; ViewBag.Error = "Nombre de usuario o contraseña incorrectos."; return(View(model)); } //obtenemos El numero de intentos máximo y el tiempo entre intentos int NoIntentos = Utilidades.Utilidades.GetIntSecurityProp("IntentosMaximos", "3"); int intentosRestantes = 0; //Tomaremos los tiempos en segundos int TiempoEntreIntentos = Utilidades.Utilidades.GetIntSecurityProp("TiempoEntreIntentos", "30") * 60; int TiempoDesdeUtimoIntento = (int)DateTime.Now.Subtract(model.fe_ultimo_intento_acceso ?? DateTime.Now).TotalSeconds; int TiempoSiguienteIntento = (TiempoEntreIntentos - TiempoDesdeUtimoIntento) / 60; if (TiempoDesdeUtimoIntento > TiempoEntreIntentos || TiempoDesdeUtimoIntento < 1) { model.no_intento_acceso = 0; } if (model.no_intento_acceso < NoIntentos) { model.no_intento_acceso++; model.fe_ultimo_intento_acceso = DateTime.Now; } intentosRestantes = NoIntentos - model.no_intento_acceso; if (Membership.ValidateUser(model.email_principal, pass) && ((model.no_intento_acceso < NoIntentos) || (model.es_super_usuario))) { model.fe_ultimo_intento_acceso = DateTime.Now; model.no_intento_acceso = 0; db.SaveChanges(); int aux; int TiempoSesion = Int32.TryParse(Utilidades.Utilidades.GetSecurityProp("TiempoSesion", "20"), out aux) ? ((aux < 0) ? 30 : aux) : (30); //Variable de sesion para realizar 1 vez la validacion de la caducidad de la contraseña FormsAuthentication.SetAuthCookie(model.email_principal, false); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, model.email_principal, DateTime.Now, DateTime.Now.AddMinutes(TiempoSesion), false, model.id_usuario.ToString()); string encTicket = FormsAuthentication.Encrypt(ticket); Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket) { Expires = ticket.Expiration }); HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket); Response.Redirect(FormsAuthentication.GetRedirectUrl(model.email_principal, false)); HttpContext.Session["CHECKEDPASS"] = false; //Seconds To Change Password //Si quedan menos de 3 días para cambiar la contraseña, se mostrara un aviso en la pantalla de inicio HttpContext.Session["STCP"] = "253800"; HttpContext.Session["SCC"] = "false"; HttpContext.Session.Timeout = 30; var cadena = HttpContext.Session["SCC"].ToString(); return(null); } //en caso de que ValidateUser retorne false, verificar si el usuario esta bloqueado if (model.id_estatus_usuario == 4) { ViewBag.Mensaje = "Su usuario se encuentra bloqueado, por favor acuda con el Administrador del sistema"; } else { ViewBag.Mensaje = "false"; if (intentosRestantes == 0) { if (Utilidades.Utilidades.GetBoolSecurityProp("BSI", "false")) { //Si está activada la opcion BSI el usuario será bloqueado model.id_estatus_usuario = 4; ViewBag.Mensaje = "Su usuario se encuentra bloqueado, por favor acuda con el Administrador del sistema"; } } if (intentosRestantes != 0) { ViewBag.Error = "Nombre de usuario o contraseña incorrectos.\nQuedan " + intentosRestantes + " intentos para iniciar sesión"; } else { if (TiempoEntreIntentos != 0) { ViewBag.Error = "Ha superado el numero de intentos máximo. Espere " + (TiempoSiguienteIntento + 1) + " Minutos para volver a intentarlo"; } else { ViewBag.Error = "Su usuario supero el número de intentos permitidos y fue bloqueado, por favor acuda con el Administrador del sistema"; } } } db.SaveChanges(); return(View(model)); }
public ActionResult DeleteConfirmed(int id) { c_usuario c_usuario = db.c_usuario.Find(id); c_usuario.c_rol.Clear(); //fijar su estado en 0 c_usuario.esta_activo = false; c_usuario.id_estatus_usuario = 3; try { db.SaveChanges(); } catch { return(RedirectToAction("CantErase", "Error", null)); } //En caso de que el registro se haya eliminado correctamente, redireccionar dependiendo desde donde se haya accesado al menú de eliminar int ns; try { ns = (int)HttpContext.Session["JumpCounter"]; } catch { ns = 0; } //Si ns es 0 redireccionamos al index de este controlador if (ns == 0) { return(RedirectToAction("Index")); }//En caso de que ns sea distinto a 0, obtenemos el Array "Directions", agregamos la direccion actual, aumentamos el contador y salvamos ambas variables globales else { List <string> directions = new List <string>(); try { directions = (List <string>)HttpContext.Session["Directions"]; } catch { directions = null; } if (directions == null) { return(RedirectToAction("Index")); } else { string direction = directions.Last(); DirectionViewModel dir = Utilidades.Utilidades.getDirection(direction); //disminuimos ns y eliminamos el ultimo elemento de directions ns--; directions.RemoveAt(ns); //Guardamos ambas variables de sesion para seguir trabajando HttpContext.Session["JumpCounter"] = ns; HttpContext.Session["Directions"] = directions; return(RedirectToAction(dir.Action, dir.Controller, new { id = dir.Id, redirect = "bfo" })); } } }