コード例 #1
0
        public ActionResult GrapherLogOn(GrapherLogOn model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                Encrypt encrypt = new Encrypt();
                string  saltkey = "";
                saltkey = _grapherService.getPasswordSalt(model.GrapherEmail);
                model.GrapherPassword = encrypt.ComputeHash(model.GrapherPassword, saltkey);

                string          msg        = "";
                LogOnResultType resultType = _grapherService.CheckAuthenticate(model.GrapherEmail, model.GrapherPassword, out msg);

                switch (resultType)
                {
                case LogOnResultType.SUCCESS:       //Login success
                    if (!string.IsNullOrEmpty(returnUrl))
                    {
                        return(Redirect(returnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("GrapherRegister", "Grapher"));
                    }

                //case LogOnResultType.PASSWORDEXPIRED:   //Password expired.
                //    return RedirectToAction("PasswordExpired", "User");
                //case LogOnResultType.USEREXPIRED:       //User Expired.
                //    ModelState.AddModelError("", msg);
                //    break;
                case LogOnResultType.USERLOCKED:            //User Locked.
                    ModelState.AddModelError("", msg);
                    break;

                case LogOnResultType.FAILED:                //Login failed.
                    ModelState.AddModelError("", msg);
                    break;

                default: break;
                }
            }
            else
            {
                ModelState.AddModelError("", "[ VALIDATION FAILED ].");
            }

            return(View(model));
        }
コード例 #2
0
        public async Task <Usuario> Autenticar(string correo, string contraseña)
        {
            string password = Encrypt.ComputeHash(contraseña, "SHA512", null);

            Usuario usuario = _db.usuarios.Where(m => m.CorreoElec == correo).FirstOrDefault();

            if (usuario != null)
            {
                bool success = Encrypt.VerifyHash(contraseña, "SHA512", usuario.Contrasena.Trim());

                if (!success)
                {
                    usuario = null;
                }
                usuario.Contrasena = string.Empty;
            }

            return(usuario);
        }
コード例 #3
0
        public async Task <JsonResult> InsertarUsuario(Usuario data)
        {
            HttpResponseMessage respuesta;

            try
            {
                //Significa que esta insertando
                if (data.IdUsuario == 0)
                {
                    data.Contrasena = Encrypt.ComputeHash(data.Contrasena, "SHA512", null);
                    data.IdEstado   = 2; // El 2 significa Pendiente por verificacion
                    data.IdRol      = 1; // Significa que es un usuario comun y corriente
                    respuesta       = await ApiHelper.POST <Usuario>("Usuario/PostUsuario", data, GetAuthToken).ConfigureAwait(false);
                }
                else
                {
                    respuesta = await ApiHelper.PUT <Usuario>("Usuario/PutUsuario", data, GetAuthToken).ConfigureAwait(false);
                }

                if (respuesta.IsSuccessStatusCode)
                {
                    //Tener acceso a la cuenta camajan
                    if (data.IdUsuario == 0)
                    {
                        int idUsuarioInsertado = await respuesta.Content.ReadAsAsync <int>().ConfigureAwait(false);

                        MailHandler.SendEmail(idUsuarioInsertado, data.CorreoElec);
                    }
                    return(Json((data.IdUsuario > 0) ? "El usuario se ha editado satisfactoriamente" : "El usuario ha sido guardado satisfactoriamente", JsonRequestBehavior.AllowGet));
                }
                else
                {
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(Json("Ha ocurrido un error con las validaciones del usuario. Si el problema persiste contacte su administrador."));
                }
            }
            catch (Exception ex)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json("Ha ocurrido un error al momento de guardar el usuario, si el problema persiste contacte al administrador"));
            }
        }
コード例 #4
0
        public async Task <JsonResult> UpdatePassword(string oldPass, string newPass, string RePass)
        {
            Usuario aux = GetUserDecrypted;

            if (oldPass == aux.Contrasena)
            {
                if (newPass == RePass)
                {
                    HttpResponseMessage respuesta = await ApiHelper.PUT <Usuario>("Usuario/PutChangePassword", new Usuario()
                    {
                        IdUsuario = aux.IdUsuario, Contrasena = Encrypt.ComputeHash(newPass, "SHA512", null)
                    }, GetAuthToken);

                    if (respuesta.IsSuccessStatusCode)
                    {
                        Usuario nuevo = await ApiHelper.GET_By_ID <Usuario>("Usuario/GetUsuario", aux.IdUsuario, GetAuthToken);

                        HttpContext.Response.Cookies.Set(CookieHandler.UpdateTicket(nuevo, newPass));

                        return(Json(new { message = "Contraseña actualizada exitosamente", property = "alert alert-success" }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(new { message = "Ha ocurrido un problema al momento de actualizar la contraseña", property = "alert alert-danger" }, JsonRequestBehavior.AllowGet));
                    }
                }
                else
                {
                    return(Json(new { message = "Las contraseñas no coinciden", property = "alert alert-danger" }, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                return(Json(new { message = "Contraseña Inválida", property = "alert alert-danger" }, JsonRequestBehavior.AllowGet));
            }
        }
コード例 #5
0
        public async Task <ActionResult> SaveUploadedFile()
        {
            try
            {
                string fName     = "";
                int    idUsuario = int.Parse(Request.Form["idUsuario"]);
                string Nombre    = Request.Form["Nombre"];
                string Persona   = Request.Form["NombrePersona"];
                string Correo    = Request.Form["Correo"];
                string Telefono  = Request.Form["Telefono"];
                int    idPais    = Convert.ToInt32(Request.Form["Pais"]);
                int    idEstado  = Convert.ToInt32(Request.Form["Estado"]);
                int    idRol     = Convert.ToInt32(Request.Form["Rol"]);
                string Pass      = Request.Form["pass"];
                string Biografia = Request.Form["Biografia"];

                bool   newFile = Convert.ToBoolean(Request.Form["newFile"].ToString());
                Byte[] imgByte = null;
                string path    = string.Empty;

                if (newFile)
                {
                    string             fileName;
                    HttpPostedFileBase file;
                    fileName = Request.Files.AllKeys[0];
                    file     = Request.Files[fileName];
                    fName    = file.FileName;
                    if (file != null && file.ContentLength > 0)
                    {
                        string pic = System.IO.Path.GetFileName(fName);

                        path = System.IO.Path.Combine(Server.MapPath("~/ProfileImages"), pic);
                        file.SaveAs(path);
                        path = "/ProfileImages/" + pic;
                    }
                }

                Usuario user = new Usuario();

                user.IdUsuario      = idUsuario;
                user.NombreUsuario  = Nombre;
                user.NombreCompleto = Persona;
                user.CorreoElec     = Correo;
                user.Telefono       = Telefono;
                user.IdPais         = idPais;
                user.IdRol          = idRol;
                user.IdEstado       = idEstado;
                user.Contrasena     = Encrypt.ComputeHash(Pass, "SHA512", null);;
                user.Biografia      = Biografia;
                user.Imagen         = path;

                HttpResponseMessage respuesta;

                if (idUsuario > 0)
                {
                    respuesta = await ApiHelper.PUT <Usuario>("Usuario/PutUsuario", user, GetAuthToken).ConfigureAwait(false);
                }
                else
                {
                    respuesta = await ApiHelper.POST <Usuario>("Usuario/PostUsuario", user, GetAuthToken).ConfigureAwait(false);
                }

                if (respuesta.IsSuccessStatusCode)
                {
                    return(Json((idUsuario > 0) ? "El usuario se ha editado satisfactoriamente" : "El usuario ha sido guardado satisfactoriamente", JsonRequestBehavior.AllowGet));
                }
                else
                {
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(Json("Ha ocurrido un error al guardar. Si el problema persiste contacte su administrador."));
                }
            }
            catch (Exception)
            {
                Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return(Json("Ha ocurrido un error al guardar. Si el problema persiste contacte su administrador."));
            }
        }