public Boolean EsTokenValido(CredencialDto credencial)
        {
            var client   = new RestClient(values.BaseUrlMSFUCredenciales + FUControllers.CONTROLLER_MS_FU_CREDENCIALES + "/validar");
            var response = client.Execute(new RestRequest().AddHeader("Authorization", "bearer " + credencial.TokenAcceso));

            return(response.StatusCode == System.Net.HttpStatusCode.OK);
        }
        public Boolean CrearCredencial(CredencialDto credencial)
        {
            CredencialesEntities db = new CredencialesEntities();
            CREDENCIAL           credencialEntity = this.mapper.Map <CredencialDto, CREDENCIAL>(credencial);

            db.CREDENCIAL.Add(credencialEntity);
            db.SaveChanges();
            return(true);
        }
 public IHttpActionResult ActualizarCredencial(CredencialDto credencial)
 {
     if (this.credencialesService.ActualizarCredencial(credencial))
     {
         return(Ok(credencial));
     }
     else
     {
         return(StatusCode(HttpStatusCode.NoContent));
     }
 }
        public CredencialDto ActualizarCredencialUsuario(CredencialDto credencial)
        {
            var         client  = new RestClient(values.BaseUrlMSFUCredenciales + FUControllers.CONTROLLER_MS_FU_CREDENCIALES + "/actualizar");
            RestRequest request = new RestRequest(Method.POST);

            request.AddHeader("Authorization", "bearer " + credencial.TokenAcceso);
            request.RequestFormat = DataFormat.Json;
            request.AddJsonBody(credencial);
            var response = client.Execute <CredencialDto>(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                credencial = response.Data;
            }
            return(credencial);
        }
Exemple #5
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            // Login inicial
            // No se disponen de datos de los tokens
            CredencialDto credencial = new CredencialDto();

            credencial.Usuario     = context.UserName;
            credencial.TokenAcceso = context.Password;
            IMsCredencialesService credencialesService = new MsCredencialesService(new MsCredencialesPersistence(), new MsCredencialesClient());

            if (credencialesService.ValidarCredencialUsuario(credencial))
            {
                ClaimsIdentity identidad = new ClaimsIdentity(context.Options.AuthenticationType);
                identidad.AddClaim(new Claim(ClaimTypes.Role, "FORMULARIO"));
                context.Validated(identidad);
            }
        }
        public CredencialDto GetCredencialPorUsuario(String usuario)
        {
            CredencialDto credencial = null;
            CREDENCIAL    credencialEntity;

            using (CredencialesEntities db = new CredencialesEntities())
            {
                var datos = (from CREDENCIAL in db.CREDENCIAL
                             where CREDENCIAL.Usuario.Equals(usuario)
                             select CREDENCIAL);
                if (datos.Count() > 0)
                {
                    credencialEntity = datos.First();
                    credencial       = this.mapper.Map <CREDENCIAL, CredencialDto>(credencialEntity);
                }
            }
            return(credencial);
        }
        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);
        }
        public Boolean ActualizarCredencial(CredencialDto credencial)
        {
            credencial.FechaMovimiento = DateTime.Now;
            CredencialesEntities db = new CredencialesEntities();
            var credenciales        = db.CREDENCIAL.Where(CREDENCIAL => CREDENCIAL.Usuario.Equals(credencial.Usuario));
            // PK USUARIO
            Boolean actualizado = credenciales.Count() > 0;

            if (actualizado)
            {
                foreach (var credencialDb in credenciales)
                {
                    credencialDb.NroBizflow               = credencial.NroBizflow;
                    credencialDb.ModoAcceso               = credencial.ModoAcceso;
                    credencialDb.FechaMovimiento          = credencial.FechaMovimiento;
                    credencialDb.TokenAcceso              = credencial.TokenAcceso;
                    credencialDb.TokenRefresco            = credencial.TokenRefresco;
                    credencialDb.TiempoExpiracionAcceso   = credencial.TiempoExpiracionAcceso;
                    credencialDb.TiempoExpiracionRefresco = credencial.TiempoExpiracionRefresco;
                }
                db.SaveChanges();
            }
            return(actualizado);
        }
 public IHttpActionResult ActualizarModoAcceso(CredencialDto credencial)
 {
     this.credencialesService.ActualizacionModoAcceso(credencial);
     return(Ok(credencial));
 }
Exemple #10
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);
        }