Exemple #1
0
        public ClaimsPrincipal ValidateToken(string securityToken, TokenValidationParameters validationParameters, out SecurityToken validatedToken)
        {
            ClaimsPrincipal  claimsPrincipal;
            Respuesta <Dato> respuesta;

            respuesta = _genService.ValorParametro("CLAVE_VALIDACION_ACCESS_TOKEN");
            if (!respuesta.Codigo.Equals(RiskConstants.CODIGO_OK))
            {
                throw new SecurityTokenValidationException(respuesta.Mensaje);
            }
            var signingKey = Encoding.ASCII.GetBytes(respuesta.Datos.Contenido);

            validationParameters.IssuerSigningKey = new SymmetricSecurityKey(signingKey);

            try
            {
                claimsPrincipal = _tokenHandler.ValidateToken(securityToken, validationParameters, out validatedToken);
            }
            catch (SecurityTokenExpiredException)
            {
                respuesta = _autService.CambiarEstadoSesion(securityToken, EstadoSesion.Expirado);
                throw;
            }
            catch (SecurityTokenValidationException)
            {
                respuesta = _autService.CambiarEstadoSesion(securityToken, EstadoSesion.Invalido);
                throw;
            }

            respuesta = _autService.ValidarSesion(securityToken);

            if (!respuesta.Codigo.Equals(RiskConstants.CODIGO_OK))
            {
                throw new SecurityTokenValidationException(respuesta.Mensaje);
            }

            return(claimsPrincipal);
        }
Exemple #2
0
        public IActionResult FinalizarSesion([FromBody] FinalizarSesionRequestBody requestBody)
        {
            var respuesta = _autService.CambiarEstadoSesion(requestBody.AccessToken, EstadoSesion.Finalizado);

            return(ProcesarRespuesta(respuesta));
        }