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

ASP.NET Discussion :

[C#] problème si clic sur "précédent"


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut [C#] problème si clic sur "précédent"
    j'ai un problème avec l'appui sur "précédent".
    j'ai un site avaec compte utilisateurs. si quelqu'un s'est connecté et à été visionner ses données. après il se déconnecte sans fermer la fenetre.

    si quelqu'un d'autre clique sur précédent il verra la fenetre précédentes avec toute les données de celui qui est passé avant

  2. #2
    Membre averti
    Avatar de Rami
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 177
    Points : 330
    Points
    330
    Par défaut Re: [ASPX] problème si clic sur "précédent"
    Citation Envoyé par moimoimoi
    après il se déconnecte...
    c'est a dire?
    il y du code pour la déconnexion?
    si oui, le poster serait utile....
    Ex Moderateur .Net

  3. #3
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Ecoute Rami a raison. J'ai egalement ce genre de site et lorsque l'utilisateur se déconnecte je fais un et une redirection vers la page de login. J'ai beau faire des précédents ou des suivants sur le navigateur je ne retrouve pas l'historique.

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    moi je fais à la connection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormsAuthentication.SetAuthCookie(userid.ToString(),false);
    et a la deconnection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FormsAuthentication.SignOut();
    puis une redirection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("mapage.aspx");
    j'ai rajoutéet pareil

    [Balise [code] rajoutée par Rami ]
    [merci d'y penser la prochaine fois]

  5. #5
    Membre actif Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par moimoimoi
    puis une redirection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("mapage.aspx");
    Essaies avec une redirection en javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Response.Write("<script language=""javascript"">document.location.replace('mapage.aspx');</script>)

  6. #6
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ça va po mieux

  7. #7
    Membre habitué
    Inscrit en
    Février 2003
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 113
    Points : 128
    Points
    128
    Par défaut
    Essaie au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Redirect("mapage.aspx");
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Server.Transfert("mapage.aspx");

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ya rien a faire

  9. #9
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    en fait je suis dans une entreprise. ce pourrait t il qu'il y ai quelque chose qui permette ça?

    j'ai fait le test avec ce forum:

    si par exemple je regarde mon profil puis je fais déconnexion. après je fais précédent et je peux encore voir les données de mon profil

    je ne suis pas sur mais je ne pense pas que ça fasse pareil chez moi

  10. #10
    Membre actif Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Points : 203
    Points
    203
    Par défaut
    Bizarre, moi quand je fait la redirection via la méthode javascript "replace", ça m'interdit ensuite de pouvoir faire un précédent...

    Est-ce que ta page se trouve dans une frame ?

  11. #11
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    j'ai vraiment l'impression que c ici le probleme.

    chez moi par exemple si je poste un message sur ce forum et qu'il y a une erreur, si je reviens en arriere pour le reposter, ce que j'ai tapé n'est plus la alors qu'ici c le cas

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    La gestion de l'historique des pages dépend du navigateur. Du côté du code, mis à part indiquer de ne pas garder les pages en cache, y a pas des milliards de choses à faire (sauf bidouiller en javascript, mais c'est loin d'être garanti ni imparable).

    Si malgré l'indication de ne pas conserver de cache, le navigateur le fait quand même... ben... si tu tiens vraiment à ce qu'une déconnexion soit suivie d'une fermeture de la fenêtre, tu peux toujours faire exactement ça : balancer un window.close() après la déconnexion :)
    (ça reste dans le domaine de la bidouille JS, mais au moins le résultat est sûr d'être le même sur tous les navigateurs pour qui ce n'est pas désactivé :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  13. #13
    Inscrit

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Points : 1 229
    Points
    1 229
    Par défaut
    Il faut décomposer le problème...

    Il faut d'abord un mécanisme de sécurité sur chaque page appellée.
    Ce mécanisme permet de gentiment renvoyé l'utilisateur vers la page de login dans les cas où :

    Sa session a expiré
    Son cookie qui servait à l'authentification n'est pas présent

    Revenons au problème :

    Un utilisateur se connecte, effectue son boulot, puis se déconnecte sans fermer le navigateur. Un quidam malintentionné arrive derrière et presse le bouton "back" (le fourbe !)...et arrive sur la page consultée précédemment.

    Pour moi ça peut vouloir dire 2 choses (voir 3) :

    Ton mécanisme de sécurité sur chaque page est pas au point.

    Le navigateur à servit une version "statique" de la page, par le biais de son cache.

    Eventuellement, la page à été servie de manière statique par un proxy.


    Bon, le méchant pas beau voit la dernière page...Qu'est-ce qu'il peut faire ? Si ton mécanisme de sécurité est bon, en théorie il ne peut rien faire, puisque le moindre appel vers le serveur va le shooter vers la page de login.

    Reste à savoir comment régler le fait qu'il puisse voir la page...
    Je dirais qu'un "no-cache" aurait une chance de régler ça.
    In my experience, any attempt to make any system idiot proof will only challenge God to make a better idiot.

  14. #14
    Membre à l'essai
    Inscrit en
    Novembre 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 18
    Points : 10
    Points
    10
    Par défaut
    ça marche!!!

    j'ai rajouté dans page_load:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Response.CacheControl = "no-cache";
    Response.AddHeader("Pragma", "no-cache"); 
    Response.ExpiresAbsolute = DateTime.Now.Date;
    Response.Expires = -1;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MFC] Intercepter le clic sur Minimze Box
    Par March' dans le forum MFC
    Réponses: 2
    Dernier message: 09/07/2004, 16h15
  2. [Jlist] Clic sur jlist
    Par bibx dans le forum Composants
    Réponses: 6
    Dernier message: 07/05/2004, 10h19
  3. Réponses: 9
    Dernier message: 23/02/2004, 19h14
  4. Gérer les clics sur les boutons
    Par cyberlewis dans le forum Windows
    Réponses: 4
    Dernier message: 08/02/2004, 15h34
  5. capter l'evenement clic sur une cellule d'un string grid
    Par lasconic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2003, 10h51

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