/// <summary>
        /// Genera un listado de claim con la información de usuario y el token de acceso
        /// </summary>
        /// <param name="user">Información del usuario del cual obtener los claims</param>
        /// <param name="accessToken">El token de acceso el cual incluir en los cliams</param>
        /// <returns>Listado de claims</returns>
        internal List <Claim> GetUserClaims(IsssteUser user, string accessToken)
        {
            var claimList = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id, StringClaimDataType),
                new Claim(ClaimTypes.Name, user.UserName, StringClaimDataType),
                new Claim(ClaimTypes.GivenName, user.Name, StringClaimDataType),
                new Claim(ClaimTypes.Email, user.Email, StringClaimDataType),
                new Claim(IsssteTramitesClaimTypes.Properties, JsonConvert.SerializeObject(user.Properties), IsssteTramitesClaimDataTypes.Properties),
                new Claim(IsssteTramitesClaimTypes.Roles, JsonConvert.SerializeObject(user.Roles), IsssteTramitesClaimDataTypes.Roles),
                new Claim(IsssteTramitesClaimTypes.AccessToken, accessToken, StringClaimDataType)
            };

            // claimList.Add(new Claim(IsssteTramitesClaimTypes.AccessToken, this.AccessToken, StringClaimDataType));
            return(claimList);
        }
        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="context"></param>
        /// <param name="authenticationOptions"></param>
        /// <param name="state"></param>
        /// <param name="user"></param>
        /// <param name="accessToken"></param>
        /// <param name="refreshToken"></param>
        public IsssteTramitesContext(IOwinContext context, IsssteTramitesAuthenticationOptions authenticationOptions, string state, IsssteUser user, string accessToken, string refreshToken)
            : base(context)
        {
            this.AuthenticationOptions    = authenticationOptions;
            this.AuthenticationProperties = this.AuthenticationOptions.StateDataFormat.Unprotect(state);
            this.User         = user;
            this.AccessToken  = accessToken;
            this.RefreshToken = refreshToken;

            this.AuthenticationProperties.Dictionary.Add("ExternalAccessToken", this.AccessToken);
            this.AuthenticationProperties.Dictionary.Add("ExternalRefreshToken", this.RefreshToken);
        }