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); }
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())); } }