public void Login(string dominio, string usuario, string clave)
        {
            string claveEncriptada = "";

            string secret = Environment.GetEnvironmentVariable("ENCRIPT_SECRET");

            claveEncriptada = Helper.Instance.Encripta(clave, secret);
            var plainTextBytes = Encoding.UTF8.GetBytes(claveEncriptada);

            claveEncriptada = Convert.ToBase64String(plainTextBytes);

            ValidacionUsuario respuesta = new ValidacionUsuario();

            try
            {
                string urlBase     = Environment.GetEnvironmentVariable("LOGIN_BASEURL");
                string urlRelativa = Environment.GetEnvironmentVariable("LOGIN_URLRELATIVA");

                if (String.IsNullOrEmpty(urlBase) || String.IsNullOrEmpty(urlRelativa))
                {
                    Console.WriteLine("Error, debe definir variables LOGIN_BASEURL y LOGIN_URLRELATIVA");
                    throw new Exception("Error configuración");
                }

                Uri uriBase = new Uri(urlBase);
                var client  = new ApiClient(uriBase);

                string        parametros = "{\"dominio\" : \"" + dominio + "\",\"usuario\" : \"" + usuario + "\", \"clave\" : \"" + claveEncriptada + "\"}";
                StringContent json       = new StringContent(parametros, Encoding.UTF8, "application/json");

                string url = urlBase + urlRelativa;

                respuesta = client.Post(url, json);
            }
            catch (Exception ex)
            {
                respuesta.EstadoValidacion = 0;
                respuesta.Mensaje          = "Ocurrió un error inesperado." + ex.Message;
            }

            if (respuesta.EstadoValidacion == 1)
            {
                Clients.Caller.SendAsync("loginResult", 1, respuesta.UsuarioAD.Nombre, respuesta.UsuarioAD.Cuenta, respuesta.Token);
            }
            else
            {
                Clients.Caller.SendAsync("loginResult", 0, respuesta.Mensaje);
            }
        }
Example #2
0
        private string GenerateJSONWebToken(ValidacionUsuario usuario)
        {
            var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
            var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

            var claims = new[] {
                new Claim("Nombre", usuario.UsuarioAD.Nombre),
                new Claim("Intentos_Login_Fallidos", usuario.UsuarioAD.Intentos_Login_Fallidos.ToString())
            };

            var token = new JwtSecurityToken(_config["Jwt:Issuer"],
                                             _config["Jwt:Issuer"],
                                             claims,
                                             expires: DateTime.Now.AddMinutes(120),
                                             signingCredentials: credentials);

            return(new JwtSecurityTokenHandler().WriteToken(token));
        }
Example #3
0
        public IActionResult Login(AutenthicationInfo dataLogin)
        {
            ValidacionUsuario respuesta = new ValidacionUsuario();

            try
            {
                IActionResult response = Unauthorized();

                string urlBase     = Environment.GetEnvironmentVariable("LOGIN_BASEURL");
                string urlRelativa = Environment.GetEnvironmentVariable("LOGIN_URLRELATIVA");

                if (String.IsNullOrEmpty(urlBase) || String.IsNullOrEmpty(urlRelativa))
                {
                    Console.WriteLine("Error, debe definir variables LOGIN_BASEURL y LOGIN_URLRELATIVA");
                    throw new Exception("Error configuración");
                }

                Uri uriBase = new Uri(urlBase);
                var client  = new ApiClient(uriBase);

                var parametros = new Dictionary <string, string>
                {
                    { "dominio", dataLogin.dominio },
                    { "usuario", dataLogin.usuario },
                    { "clave", dataLogin.clave }
                };

                var    request = new FormUrlEncodedContent(parametros);
                string url     = urlBase + urlRelativa;

                respuesta = client.Post(url, request);

                if (respuesta.EstadoValidacion == 1)
                {
                    respuesta.Token = GenerateJSONWebToken(respuesta);
                }
            }
            catch (Exception ex) {
                respuesta.EstadoValidacion = 0;
                respuesta.Mensaje          = "Ocurrió un error inesperado." + ex.Message;
            }

            return(Ok(respuesta));
        }
        public async Task <IActionResult> Login(LoginViewModel model)
        {
            ValidacionUsuario respuesta = new ValidacionUsuario();

            try
            {
                IActionResult response = Unauthorized();

                string urlBase     = Environment.GetEnvironmentVariable("SERVICIOAD_BASEURL");
                string urlRelativa = Environment.GetEnvironmentVariable("SERVICIOAD_URLRELATIVA");

                if (String.IsNullOrEmpty(urlBase) || String.IsNullOrEmpty(urlRelativa))
                {
                    Console.WriteLine("Error, debe definir variables SERVICIOAD_BASEURL y SERVICIOAD_URLRELATIVA");
                    throw new Exception("Error configuración");
                }

                Uri uriBase = new Uri(urlBase);
                var client  = new ApiClient(uriBase);

                var parametros = new Dictionary <string, string>
                {
                    { "dominio", model. },
                    { "usuario", usuario },