Пример #1
0
        public RespuestaOperacionServicio AutenticarUsuario(UsuarioAuth data)
        {
            RespuestaOperacionServicio rpta      = new RespuestaOperacionServicio();
            RespuestaCerbero           respuesta = new RespuestaCerbero();

            try
            {
                string user    = data.user;
                string pass    = data.pass;
                string captcha = data.captcha;

                bool bValidacionCaptcha = ReCaptcha.Validate(captcha);
                if (!bValidacionCaptcha)
                {
                    rpta.Resultado = Constants.RESPUESTA_CAPTCHA_ERROR;
                    rpta.Error     = "La validación CAPTCHA no ha sido correcta.";
                    return(rpta);
                }

                CerberoResult resultValidate = CerberoService.ValidarVersion(Constants.CERBERO_SYSTEM_CODE, Constants.CERBERO_VERSION, Constants.CERBERO_TYPE_INFORMATION);

                if (resultValidate.respuesta == 1)
                {
                    CerberoResult resultAuntenticar = CerberoService.AutenticarUsuario(Constants.CERBERO_SYSTEM_CODE, user, pass, 0);

                    if (resultAuntenticar.respuesta == 1)
                    {
                        string tokenString = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}{1}{2}", user, DateTime.Now.Millisecond, DateTime.Now.ToShortTimeString())));

                        List <string>    opciones = resultAuntenticar.opciones.Split('|').ToList();
                        UsuarioRespuesta usuario  = new UsuarioRespuesta(user, tokenString, opciones);

                        RestDataResponse response = new RestDataResponse(user, tokenString, opciones, RestDataResponse.STATUS_OK, "Usuario logueado correctamente");
                        respuesta.response = response;

                        Usuarios ObjUsuario      = new Usuarios();
                        string   IDUsuarioPerfil = ObjUsuario.obtenerIdUsuario(respuesta.response.usuario.ToUpper());
                        respuesta.response.idUsuario = Convert.ToInt32(IDUsuarioPerfil.Split('|')[0]);
                        respuesta.response.perfil    = IDUsuarioPerfil.Split('|')[1];

                        rpta.Resultado = Constants.RESPUESTA_KERBERO_OK;
                        rpta.data      = respuesta;
                    }
                    else
                    {
                        throw new Exception(resultAuntenticar.mensaje);
                    }
                }
                else
                {
                    throw new Exception(resultValidate.mensaje);
                }
            }
            catch (Exception ex)
            {
                rpta.Resultado = Constants.RESPUESTA_KERBERO_ERROR;
                rpta.Error     = ex.Message;
            }
            return(rpta);
        }
Пример #2
0
        public HttpResponseMessage Login(JObject data)
        {
            try
            {
                Debug.Print("----- START ws login ----");
                var user = data.GetValue("user").Value <string>();
                var pass = data.GetValue("pass").Value <string>();

                Debug.Print("user: "******"pass: "******"{0}{1}{2}", user, DateTime.Now.Millisecond, DateTime.Now.ToShortTimeString())));
                        CRUDConsultaDbUtil.GuardarToken(user, tokenString);

                        var opciones = resultAuntenticar.opciones.Split('|').ToList();
                        var usuario  = new Usuario(user, tokenString, opciones);

                        RestDataResponse response = new RestDataResponse(usuario, RestDataResponse.STATUS_OK, "Usuario logueado correctamente");

                        new LogUtil(user + " se logueo el " + DateTime.Now.ToLongTimeString() + " " + DateTime.Now.ToLongDateString());
                        Debug.Print("----- END ws login ----");
                        return(this.Request.CreateResponse(HttpStatusCode.OK, response));
                    }
                    else
                    {
                        Debug.Print("----- END ws login (No se pudo loguear en cerbero) ----");
                        return(this.Request.CreateResponse(HttpStatusCode.Unauthorized, ErrorMessagesUtil.cannotLoginCerbero()));
                    }
                }
                else
                {
                    Debug.Print("----- END ws login (No se pudo conectar a cerbero) ----");
                    return(this.Request.CreateResponse(HttpStatusCode.Unauthorized, ErrorMessagesUtil.cannotConnectCerbero()));
                }
            }
            catch (Exception ex)
            {
                Debug.Print(ex.Message);
                Debug.Print(ex.StackTrace.ToString());
                new LogUtil(ex);
                return(this.Request.CreateResponse(HttpStatusCode.InternalServerError, ErrorMessagesUtil.error()));
            }
        }