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 :

Une alternative à document.execCommand("ClearAuthenticationCache", false);


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Une alternative à document.execCommand("ClearAuthenticationCache", false);
    Bonjour,

    En cherchant un moyen simple de supprimer le cache coté client après la déconnection, j'ai trouvé ce morceau de code, qui marche très bien avec Firefox. Par contre pour internet explorer, si j'ouvre une session sur un autre site "developpez.copm" par exemple dans un autre anglet, quand je me déconnecte de mon site, le code ci-dessus est exécuté et il me déconnecte aussi de "developpez.com", c'est valable pour n'importe quelle session (Yahoo, Gmail ....).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (document.all == null) {
        if (window.crypto) {
            window.crypto.logout();
        } else {
             document.execCommand("ClearAuthenticationCache", false);
        };
    Je me demande donc s'il n'existe pas pas une autre methode pour supprimer uniquement le cache de la session de mon site.

    Merci d'avance de votre aide.

  2. #2
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    ça ne sert pas à grand chose par définition un cache de session n'est plus reconnu comme valide par le serveur à la connexion suivante
    donc son contenu sera invalidé et libéré par le navigateur

    A+JYT

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Bonjour sekaijin,

    Effectivement le cache de session n'est plus reconnu comme valide par le serveur à la connexion suivante, mais il reste sur la machine du client, et il n'est pas automatiquement supprimé à la déconnection.
    Pour des raisons de sécurité, l'idée c'est d'être sûr que le cache d'authentification est créé à la connexion et supprimé à la déconnection.

  4. #4
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    normalement on ne met pas de données d'authentification dans le cache du client

    seul l'id de session sur le serveur est mise dans une entête
    ainsi on est sur que rien ne reste
    si le contenu des page est sensible alors un no cache dans l'entête permet de ne pas mettre en cache côté client

    c'est pour ça entre autre que je dis toujours de séparer le contenant du contenu.
    faire transiter le js css html en utilisant le cache et les data sans cache (et n’autoriser le cache de data qu'après s'être posé les questions qui vont bien)

    A+JYT

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Février 2013
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    J'ai mis "no cache" pour les data, et donc je n'ai plus en cache que les js, css et les images, ais en testant j'ai eu un autre souci, en effet je me connecte avec un login + mot de passe + certificat logiciel, du coup sans la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.execCommand("ClearAuthenticationCache", false);
    quand je me mets mon login et mot de passe, IE me demande de choisir un certificat, je choisis le bon, je me connecte et ça se passe bien.
    Par contre si je me déconnecte et j'essaye de me connecter avec un autre utilisateur, le navigateur choisit par défaut le dernier certificat utilisé, donc je n'arrive pas à me connecter.
    J'ai cherché sur internet pour voir comment faire pour éviterça, et on propose la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.execCommand("ClearAuthenticationCache", false);
    donc je reviens au point de départ

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