Beispiel #1
0
        public ActionResult ChangePassword(String data)
        {
            Dictionary <String, Object> response = new Dictionary <String, Object>();
            Dictionary <String, Object> datos    = new Dictionary <String, Object>();
            var result = new JavaScriptSerializer().Deserialize <dynamic>(data);

            foreach (var obj in result)
            {
                datos.Add(obj["name"], obj["value"]);
            }

            Dictionary <String, Object> user_data = (Dictionary <String, Object>)Session["USER_DATA"];
            Dictionary <String, Object> userData  = Usuarios.GetInfoUserSession(int.Parse(user_data["IdUsuario"].ToString()));

            // Validar contraseña actual
            if (Security.Encriptar(datos["ContrasenaActual"].ToString(), userData["HashKey"].ToString()) != userData["PasswordUser"].ToString())
            {
                response.Add("error", "La contraseña actual no coincide con la contraseña del usuario.");
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            //Validar que contraseña nueva sea diferente a la actual
            if (Security.Encriptar(datos["NuevaContrasena"].ToString(), userData["HashKey"].ToString()) == userData["PasswordUser"].ToString())
            {
                response.Add("error", "La nueva contraseña es igual a la actual.");
                return(Json(response, JsonRequestBehavior.AllowGet));
            }

            datos["IdUsuario"]    = int.Parse(user_data["IdUsuario"].ToString());
            datos["HashKey"]      = Security.GenerateRandomKey();
            datos["PasswordUser"] = Security.Encriptar(datos["NuevaContrasena"].ToString(), datos["HashKey"].ToString());

            bool resp = Usuarios.ChangePassword(datos);

            if (resp)
            {
                response.Add("success", "true");
            }
            else
            {
                response.Add("error", "No se ha podido guardar el usuario.");
            }

            return(Json(response, JsonRequestBehavior.AllowGet));
        }