protected Guid ObterUsuarioId()
        {
            var usuarioId = Guid.Empty;

            var identity = User.Identity;

            var claimHelper = new ClaimHelper(identity);

            if (identity != null && identity.IsAuthenticated)
            {
                if (!Guid.TryParse(claimHelper.ObterValor("user_id"), out usuarioId))
                {
                    throw new ArgumentException("Usuário inválido");
                }
            }

            return(usuarioId);
        }
        private bool Validar(IIdentity identity, ActionExecutingContext context)
        {
            var chaveHeader = "ping-key";

            var claimHelper = new ClaimHelper(identity);

            var user_id = claimHelper.ObterValor("user_id");

            var pingKey = context.HttpContext.Request.Headers[chaveHeader];

            var valido = false;

            if (!trava.ContainsKey(user_id) || trava[user_id] != pingKey)
            {
                valido         = true;
                trava[user_id] = pingKey;
            }

            return(valido);
        }
        protected string ObterValorDoClaims(string chave)
        {
            var claimHelper = new ClaimHelper(User.Identity);

            return(claimHelper.ObterValor(chave));
        }