public ActionResult Login([Bind(Include = "user_email,user_pass")] LoginViewModel pLoginModel, string returnUrl) { int tipo_error = 0; UserBL oUserBL = new UserBL(); CurrentUserViewModel result = oUserBL.ValidarUsuario(pLoginModel.user_email, Helper.Encripta(pLoginModel.user_pass), ref tipo_error); //List<UsuarioAccion> result = oLoginBL.ValidarUsuario(oLoginModel.usuario, oLoginModel.clave, ref tipo_error); if (result != null && tipo_error == 0) { Session[System.Configuration.ConfigurationManager.AppSettings["session.usuario.actual"]] = null; result.name_abbre = Helper.Substring(result.name, 20); Session[System.Configuration.ConfigurationManager.AppSettings["session.usuario.actual"]] = result; oUserBL.ActualizarFechaIngreso(result.user_id); if (result.permissions.Count() > 0) { if (String.IsNullOrEmpty(returnUrl) || returnUrl == "/") { if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.list_draft_law)) { return(RedirectToAction("Index", "DraftLaw")); } if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.my_draft_laws)) { return(RedirectToAction("MisProyectosLey", "Investigator")); } if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.my_concepts)) { return(RedirectToAction("Index", "Concept")); } if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.concepts_to_qualify)) { return(RedirectToAction("PorCalificar", "Concept")); } if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.concepts_emited)) { return(RedirectToAction("Emitidos", "Concept")); } if (result.permissions.Contains((int)AuthorizeUserAttribute.Permission.general_report)) { return(RedirectToAction("Index", "Report")); } return(RedirectToAction("Index", "Home")); } string strRedirect = returnUrl; return(RedirectToLocal(strRedirect)); } else { ModelState.AddModelError("", "Usted no tiene permisos a ninguna página del sistema.Comuníquese con el Administrador si desea acceder."); } } else { if (tipo_error == -1) { ModelState.AddModelError("", "El usuario no existe."); } else if (tipo_error == -2) { ModelState.AddModelError("", "El usuario esta en estado inactivo."); } else if (tipo_error == -3) { ModelState.AddModelError("", "El usuario o la contraseña ingresados son incorrectos."); } } return(View()); }
public IHttpActionResult Authenticate(LoginRequest login) { if (login == null) { throw new HttpResponseException(HttpStatusCode.BadRequest); } int tipo_error = 0; UserBL oUserBL = new UserBL(); CurrentUserViewModel result = oUserBL.ValidarUsuario(login.Username, Helper.Encripta(login.Password), ref tipo_error); //List<UsuarioAccion> result = oLoginBL.ValidarUsuario(oLoginModel.usuario, oLoginModel.clave, ref tipo_error); if (result != null && tipo_error == 0) { oUserBL.ActualizarFechaIngreso(result.user_id); if (result.permissions.Count > 0) { if (result.role_id != 9) { return(Ok(new { status = 0, message_error = "Usted no tiene asignado el perfil de congresista. Comuníquese con el Administrador si desea acceder." })); } else { var rolename = "Congresista"; var token = TokenGenerator.GenerateTokenJwt(login.Username, rolename); return(Ok(new { user_id = result.user_id, status = 1, token = token, })); } } else { return(Ok(new { status = 0, message_error = "Usted no tiene permisos a ninguna página del sistema.Comuníquese con el Administrador si desea acceder." })); } } else { if (tipo_error == -1) { return(Ok(new { status = 0, message_error = "El usuario no existe." })); } else if (tipo_error == -2) { return(Ok(new { status = 0, message_error = "El usuario esta en estado inactivo. Comuníquese con el Administrador para activar su cuenta." })); } else if (tipo_error == -3) { return(Ok(new { status = 0, message_error = "El usuario o la contraseña ingresados son incorrectos." })); } } // Unauthorized access return(Unauthorized()); }