/*
         * Basado en:
         * Obtener multiples tuplas llamando a un procedimiento almacenado: https://docs.microsoft.com/es-es/ef/ef6/modeling/designer/advanced/multiple-result-sets#multiple-result-sets-with-configured-in-edmx
         */
        private void cargar_permisos()
        {
            var    identidad_autenticada = (ClaimsPrincipal)Thread.CurrentPrincipal;
            string correo_autenticado    = identidad_autenticada.Claims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault();

            if (correo_autenticado != null)
            {
                limpiar_permisos();

                // Guardo las tuplas resultantes del llamado al procedimiento almacenado, orden: Sigla de carrera, numero de enfasis, permiso
                var tuplas_resultantes = db.SP_ObtenerPermisosUsuario(correo_autenticado, obtener_perfil_actual());

                string llave_hash = null;

                foreach (var tupla in tuplas_resultantes)
                {
                    // Creo la llave unica y la agrego a los permisos de usuario.
                    llave_hash = tupla.SiglaCarrera + ',' + tupla.NumeroEnfasis + ',' + tupla.IdPermiso;
                    permisos_usuario.Add(llave_hash);
                }
            }
        }