public OAuth2ResponseDto GetOAuth2Renovacion(String refreshToken)
        {
            OAuth2ResponseDto resultado = null;
            var         client          = new RestClient(values.BaseUrlMSFUCredenciales + "/token");
            RestRequest request         = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("grant_type", "refresh_token", ParameterType.GetOrPost);
            request.AddParameter("refresh_token", refreshToken, ParameterType.GetOrPost);
            var response = client.Execute <OAuth2ResponseDto>(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                resultado = response.Data;
            }
            return(resultado);
        }
        public OAuth2ResponseDto GetOAuth2Acceso(CredencialDto credencial)
        {
            OAuth2ResponseDto resultado = null;
            var         client          = new RestClient(values.BaseUrlMSFUCredenciales + "/token");
            RestRequest request         = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("grant_type", "password", ParameterType.GetOrPost);
            request.AddParameter("username", credencial.Usuario, ParameterType.GetOrPost);
            request.AddParameter("password", values.BizflowUserGeneralKey, ParameterType.GetOrPost);
            var response = client.Execute <OAuth2ResponseDto>(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                resultado = response.Data;
            }
            return(resultado);
        }
Beispiel #3
0
        public Boolean ControlAcceso(String SiglaUsuario, int NroBizflow, TokenInformacion TokenInformacion, out CredencialDto Credencial)
        {
            Boolean Resultado = false;

            Credencial = new CredencialDto()
            {
                Usuario       = SiglaUsuario,
                NroBizflow    = NroBizflow,
                TokenAcceso   = TokenInformacion.TokenAcceso,
                TokenRefresco = TokenInformacion.TokenRefresco
            };
            // Primero validar el Token
            if (!this.credencialesClient.EsTokenValido(Credencial))
            {
                OAuth2ResponseDto Response = null;
                if (TokenInformacion.EsRenovacion)
                {
                    // Si renovacion, se utiliza refresh_token
                    Response = this.credencialesClient.GetOAuth2Renovacion(Credencial.TokenRefresco);
                }
                else
                {
                    // Si es primer acceso, se solicita access_token
                    Response = this.credencialesClient.GetOAuth2Acceso(Credencial);
                    TokenInformacion.EsRenovacion = true;
                }
                // Validacion respuesta
                if (null != Response && null == Response.Error)
                {
                    Resultado = true;
                    TokenInformacion.TokenAcceso   = Response.AccessToken;
                    TokenInformacion.TokenRefresco = Response.RefreshToken;
                    Credencial.TokenAcceso         = Response.AccessToken;
                    Credencial.TokenRefresco       = Response.RefreshToken;
                    // Validar Modo
                    CredencialDto credencialModo = this.credencialesClient.ActualizarModoAcceso(Credencial);
                    if (null != credencialModo)
                    {
                        // Actualizar datos en servicio Credenciales
                        Credencial = this.credencialesClient.ActualizarCredencialUsuario(credencialModo);
                    }
                    else
                    {
                        // En caso de error consultando el Modo, se actualiza el registro de todas formas en modo Visualizacion
                        Credencial.ModoAcceso = Convert.ToDecimal(ModoAccesoUsuario.MODO_VISUALIZACION);
                        Credencial            = this.credencialesClient.ActualizarCredencialUsuario(Credencial);
                    }
                }
                else
                {
                    // Sin respuesta correcta, comenzar nuevamente
                    TokenInformacion.EsRenovacion  = false;
                    TokenInformacion.TokenAcceso   = null;
                    TokenInformacion.TokenRefresco = null;
                }
            }
            else
            {
                // Token sigue siendo valido
                Resultado = true;
            }
            return(Resultado);
        }