Esempio n. 1
0
        public static async Task <bool> iniciaSesionAsync()
        {
            var    res        = false;
            string plataforma = ConfigurationManager.AppSettings["Plataforma"].ToString();
            string app        = ConfigurationManager.AppSettings["App"].ToString();
            string version    = ConfigurationManager.AppSettings["Version"].ToString();
            string idUbox     = ConfigurationManager.AppSettings["IdUbox"].ToString();
            string clave      = ConfigurationManager.AppSettings["ClaveUbox"].ToString();
            string macAddress = getMacAddress();

            Console.WriteLine(macAddress);
            IniciarSesion peticion        = new IniciarSesion(idUbox, clave, app, version, "", plataforma, macAddress);
            ClienteWebApi clienteWebApi   = new ClienteWebApi();
            var           respuestaWebApi = await clienteWebApi.callWebApiSinAutorizacion("Autenticacion/LoginWindows",
                                                                                          JsonConvert.SerializeObject(peticion));

            if (respuestaWebApi != null)
            {
                if (respuestaWebApi.statusCode == 200)
                {
                    ////Se guarda el JWt en Session y el RefreshToken en Cookie
                    RespuestaAutenticacion modeloAprobado = respuestaWebApi.respuesta.Datos.ToObject <RespuestaAutenticacion>();
                    ////Ahorita guardariamos los datos en memoria
                    JWT          = modeloAprobado.jwtToken;
                    RefreshToken = modeloAprobado.refreshToken;
                    IdUser       = respuestaWebApi.respuesta.IdRespuesta;
                    res          = true;
                }
                else if (respuestaWebApi.statusCode == 400)
                {
                    ////Aqui se veria que mensaje poner en caso de que no se pueda hacer un login
                    ///porque falte un dato
                    MessageBox.Show(respuestaWebApi.message);
                }
                else
                {
                    ////Aqui habria que ver igual que mensaje poner desde el web api
                    ////Por que debio ocurrir un error en el web api
                    MessageBox.Show(respuestaWebApi.message);
                }
            }
            else
            {
                MessageBox.Show("Por el momento el servicio esta fuera de linea, intentalo más tarde.");
            }

            return(res);
        }
Esempio n. 2
0
        /// <summary>
        /// Metodo para actualizar el token de acceso en caso de que se haya expirado
        /// </summary>
        /// <returns></returns>
        public async Task <bool> callWebApiRefreshToken()
        {
            var    resultado    = false;
            string refreshToken = Globals.RefreshToken;
            string user         = Globals.IdUser.ToString();
            string jwt          = Globals.JWT;
            var    peticion     = new ActualizarToken(refreshToken, user, jwt);

            try
            {
                using (var cliente = new HttpClient())
                {
                    var res = new RespuestaApiObjeto();
                    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
                    cliente.Timeout = TimeSpan.FromSeconds(timeoutWebApi);
                    var cts            = new CancellationTokenSource();
                    var postBody       = JsonConvert.SerializeObject(peticion);
                    var uri            = new Uri(string.Format("{0}{1}", url, "Autenticacion/RefreshToken"));
                    var requestContent = new StringContent(postBody, Encoding.UTF8, "application/json");
                    var response       = await cliente.PostAsync(uri, requestContent);

                    var content = await response.Content.ReadAsStringAsync();

                    Debug.WriteLine(content);
                    res = JsonConvert.DeserializeObject <RespuestaApiObjeto>(content);
                    if (res.statusCode == 200)
                    {
                        ////Se guarda el JWt en Session y el RefreshToken en Cookie
                        RespuestaAutenticacion modeloAprobado = res.respuesta.Datos.ToObject <RespuestaAutenticacion>();
                        Globals.JWT          = modeloAprobado.jwtToken;
                        Globals.RefreshToken = modeloAprobado.refreshToken;
                        Globals.IdUser       = res.respuesta.IdRespuesta;
                        resultado            = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex.Message);
            }

            return(resultado);
        }
Esempio n. 3
0
        public RespuestaAutenticacion AutenticarUsuario()
        {
            RespuestaAutenticacion autenticacion = new RespuestaAutenticacion
            {
                TIP_OPER = Properties.Resources.CodErrorAutorizacion,
                STATUS   = "Ingrese Usuario y Contraseña"
            };

            if (SoapHeader == null)
            {
                return(autenticacion);
            }
            if (string.IsNullOrEmpty(SoapHeader.Usuario) || string.IsNullOrEmpty(SoapHeader.Password))
            {
                return(autenticacion);
            }


            autenticacion.STATUS = "Credenciales Invalidas";
            if (!SoapHeader.UsuarioCorrecto(SoapHeader.Usuario, SoapHeader.Password))
            {
                return(autenticacion);
            }

            // Create and store the TokenAutenticacion before returning it.
            string token = Guid.NewGuid().ToString();

            HttpRuntime.Cache.Add(
                token,
                SoapHeader.Usuario,
                null,
                DateTime.Now.AddMinutes(5),//tiempo de expiracion de Item en Cache
                TimeSpan.Zero,
                System.Web.Caching.CacheItemPriority.NotRemovable,
                null);

            autenticacion.STATUS   = string.Empty;
            autenticacion.TOKEN    = token;
            autenticacion.TIP_OPER = Properties.Resources.CodAutorizacionExitosa;

            return(autenticacion);
        }