public ActionResult Create([Bind(Include = "UsuarioID,User,Password,PasswordConfirm,Estatus")] Usuario usuario) { if (ModelState.IsValid) { try { //validación de usuario duplicado if (!db.Usuarios.Any(s => s.User.ToLower() == usuario.User.Trim().ToLower())) { usuario.User = usuario.User.Trim(); usuario.Password = Encriptacion.MD5Hash(usuario.Password); usuario.Estatus = 1; db.Usuarios.Add(usuario); db.SaveChanges(); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "El usuario ya existe en la base de datos."); } } catch (Exception e) { ModelState.AddModelError("", "Ocurrió un error al agregar el usuario. " + e.Message); } } return(View(usuario)); }
public ActionResult Login(Usuario usuario) { string passwordEncriptado = !String.IsNullOrEmpty(usuario.Password) ? Encriptacion.MD5Hash(usuario.Password) : ""; try { if (usuario.User != null && usuario.Password != String.Empty && db.Usuarios.Any(u => u.User == usuario.User && u.Password == passwordEncriptado && u.Estatus == 1)) { FormsAuthentication.SetAuthCookie(usuario.User, false); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "Usuario no validado. Inténtalo de nuevo."); } } catch (Exception e) { ModelState.AddModelError("", "No se pudo validar el acceso. " + e.Message); } return(View(usuario)); }
public ActionResult Edit([Bind(Include = "UsuarioID,User,Password,PasswordConfirm,Estatus")] Usuario usuario, string cambiarPassword) { try { //si no hay cambio de password eliminamos las validaciones de los campos Password y PasswordConfirm if (cambiarPassword == "false") { ModelState.Remove("Password"); ModelState.Remove("PasswordConfirm"); } if (ModelState.IsValid) { //validación de usuario duplicado if (!db.Usuarios.Any(s => s.User.ToLower() == usuario.User.Trim().ToLower() && s.UsuarioID != usuario.UsuarioID)) { //el objeto usuario tiene estado detached entonces usamos el objeto usuarioDB //que ya está registrado en la base de datos. Usuario usuarioDB = db.Usuarios.Find(usuario.UsuarioID); usuarioDB.User = usuario.User.Trim(); if (cambiarPassword == "true") { usuarioDB.Password = Encriptacion.MD5Hash(usuario.Password); } //la columna PasswordConfirm no está en la BD pero es necesaria para validar //el modelo usuarioDB.PasswordConfirm = usuarioDB.Password; usuarioDB.Estatus = usuario.Estatus; db.SaveChanges(); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "El usuario ya existe en la base de datos."); } } } catch (Exception e) { ModelState.AddModelError("", "Ocurrió un error al actualizar el usuario. " + e.Message); } //generamos una lista para seleccionar los posibles valores de Estatus List <SelectListItem> EstatusItems = new List <SelectListItem>(); EstatusItems.Add(new SelectListItem { Text = "Activo", Value = "1", }); EstatusItems.Add(new SelectListItem { Text = "Suspendido", Value = "0" }); EstatusItems.Where(e => Convert.ToInt32(e.Value) == usuario.Estatus).First().Selected = true; ViewBag.Estatus = EstatusItems; return(View(usuario)); }