IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

SESSION_ID + Iframe : je ne veux pas que le session_id soit passé dans l'url


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut SESSION_ID + Iframe : je ne veux pas que le session_id soit passé dans l'url
    Bonjour,

    J'ai un petit soucis avec le session_id


    J'ai un site avec session_id. Dans ce site, si l'utilisateur click sur un lien, cela ouvre une iframe avec une page d'un autre site. (Tout cela se fait en javascript)

    Le problème est que le session_id du premier site est passé automatiquement au second site. Et ce second site (qui est une applet oracle forms), quand il voit le session_id refuse la connexion et j'ai un joli message d'erreur.


    Bref après plusieurs heures, j'ai compris que le problème était le session_id car lorsque j'ouvre une nouveau browser et entre l'url directement ça fonctionne mais quand je pars du premier site, ça foire.


    J'ai trouvé le moyen de supprimer l'id_session en javascript et ça fonctionne mais... comme id_session est suprrimé l'utilisateur n'est plus authentifié sur le premier site....

    J'avais trouvé un moyen de stocker l'id_session temporairement dans une variable, le temps d'ouvrir l'iframe puis je remets l'id_session comme avant mais apparemment ça ne fonction pas. Je trouve cependant que c'est faire compliqué.

    J'ai le même problème si je remplace l'iframe par une <A>

    Donc la question que je pose c'est comment en javascript empècher IE de passer l'id_session à une iframe (ou même un lien <a>)


    Merci beaucoup,

    Vodnok


    voici le js que j'utilise pour deleter et réécrire le cookie_session
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    function writePersistentCookie (CookieName, CookieValue, periodType, offset) {
     
      var expireDate = new Date ();
      offset = offset / 1;
     
      var myPeriodType = periodType;
      switch (myPeriodType.toLowerCase()) {
        case "years": 
         var year = expireDate.getYear();     
         // Note some browsers give only the years since 1900, and some since 0.
         if (year < 1000) year = year + 1900;     
         expireDate.setYear(year + offset);
         break;
        case "months":
          expireDate.setMonth(expireDate.getMonth() + offset);
          break;
        case "days":
          expireDate.setDate(expireDate.getDate() + offset);
          break;
        case "hours":
          expireDate.setHours(expireDate.getHours() + offset);
          break;
        case "minutes":
          expireDate.setMinutes(expireDate.getMinutes() + offset);
          break;
        default:
          alert ("Invalid periodType parameter for writePersistentCookie()");
          break;
      } 
     
      document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
    }  
     
    function deleteCookie (cookieName) {
     
      if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);  
      return true;     
    }

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    essaye de mettre une url absolue en modifiant légèrement l'url;
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    http://www.domaine.fr
    et
    http://domaine.fr
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 152
    Points : 80
    Points
    80
    Par défaut
    Tout cela se passe dans un intranet et l'url est de ce type

    Le site 1 : http://srpiso02d:27015/
    Le site 2 : http://srpiso02d:7788/forms/frmservlet?config=

    Ce sont 2 serveurs virtuels qui ne diffère dans l'url que par le port. C'est peut être pour ça que l'id_session est passé automatique...


    Sinon j'ai un peu plus d'information sur le pourquoi de l'Oracle Forms qui refuse la connexion. Il reçoit un id_session qu'il ne connait pas et au lieu de se dire, ok l'id_session n'est pas bon, je crée une nouvelle session, il boucle sur le test de la session et après 5X il refuse la connexion. Il s'agit d'un bug Oracle. Il exite un patch mais je n'ai pas encore testé (ce n'est pas moi qui installe les patchs).

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    As tu essayé de regarder du coté de la configuration de ton serveur d'application? Tu dois pouvoir normalement le configurer pour utiliser automatiquement les cookies et y stoker le session_id permettant à ton URL de ne jamais porter cette information.

    Ce n'est pas le rôle du javascript que de gérer les problématique de session, ceci ressemble plus à un hack ou contournement plus qu'autre chose. La preuve, ça en devient très compliqué

Discussions similaires

  1. Je veux pas que mon service se ferme
    Par Mister Ghazi dans le forum Développement Mobile en Java
    Réponses: 0
    Dernier message: 29/07/2010, 10h15
  2. Réponses: 3
    Dernier message: 23/04/2008, 17h48
  3. Réponses: 10
    Dernier message: 26/07/2007, 14h16
  4. Réponses: 19
    Dernier message: 02/07/2007, 18h38
  5. Réponses: 4
    Dernier message: 18/04/2007, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo