Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }