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 :

Durée Session Timeout


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut Durée Session Timeout
    Bonjour à tous, je voudrai savoir si c'est "dangereux" ou à ne surtout pas faire de mettre un session Timeout très long (ex : 10h) ou es ce qu'il vaut mieux utiliser des cookies ou autres ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    C'est dangereux oui. Tu risques, selon le nombre d'utilisateurs et ce que tu stockes dans ta session, de faire crasher ton server IIS à cause de la mémoire.

    Ce que tu peux faire c'est de stocker ta Session sur SQLServer par exemple. Il existe de nombreux tutos sur ce sujet.

    Mais pour répondre à ta question, oui il est possible de mettre le Timeout à 10h. La valeur maximale est de 525 600 minutes (365 jours x 24 heures x 60 minutes).

    En espérant t'avoir aidé.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    Je suis pas sur SQLServer mais sur MySql, on peut faire la même chose ?

    Et les allers-retours serveur -> base de données ne vont pas saturer le serveur non plus ?

  4. #4
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Dans ce cas tu peux utiliser le mode State Server ou encore utiliser ton propre provider pour stocker la session (Custom storage provider). Je t'invite à consulter cet article sur les différents modes.

    Mais avant de faire compliqué, peux-tu indiquer pourquoi tu as besoin d'une telle durée et qu'est ce que tu souhaites stocker en Session. Il y a surement moyen de faire autrement, ou alors il y a un problème de conception.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    Enfaite dans mon espace membre (authentifier par session), le visiteur peut créer des commandes, mais si entre le moment de l'ouverture de la page de création de commande et le clique sur le bouton Valider il se passe un temps assez grand (supérieur au TimeOut), la session d'authentification sera écouler et donc j'enregistre pas la commande et je redirige vers le formulaire de connexion. Donc l'internaute aura tout perdu.

    Je sais pas si j'ai été assez clair ?

    J'avais pensé à faire un "Timer aJax" qui viens sauvegarder le travail toutes les n minutes, mais bon je vais surcharger mon serveur aussi.

    N'hésitez pas à me proposer une solution, y a surement une erreur de conception à la base.

  6. #6
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Ok, donc l'idée est de garder en mémoire un panier, sans pour autant que le client valide celui-ci.

    Si ton panier est une liste d'objet avec quelques champs (c'est à dire : ça ne prend pas beaucoup en mémoire), là tu peux mettre un Session Timeout de plusieurs heures).

    Sinon, tu utilises le mode State Server pour stocker ta Session (ou un Custome storage provider).

    Enfin, il te reste la solution d'enregistrer au fûr et à mesure ton panier dans ta base MySQL, rien de compliqué.

    Je t'invite aussi à consulter les nombreux articles sur la gestion d'un panier en ASP.NET. Tu as un exemple parmi tant d'autres ici, tu as aussi des codes sources sur Codeplex. Enfin, pense à consulter les articles en anglais.

    En espérant t'avoir aidé.

  7. #7
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    Pour essayer j'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session.Timeout = 480;
    Session.Add("idSociete", reader.GetString("ID"));
    Mais au bout d'un certain temps, maximum 5 minutes, la session est quand même "null".

    Comment ça se fait ?

  8. #8
    Expert confirmé

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Par défaut
    Citation Envoyé par zolectronic Voir le message
    J'ai regarder quelques sites qui parlait de ce sujet, et si j'ai bien compris c'est un mélange entre les sessions les cookies et la persistance en base de données ?
    Non, le viewstate est sérialisé et stocké dans le source de ta page

    Citation Envoyé par zolectronic Voir le message
    Pour essayer j'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Session.Timeout = 480;
    Session.Add("idSociete", reader.GetString("ID"));
    Mais au bout d'un certain temps, maximum 5 minutes, la session est quand même "null".

    Comment ça se fait ?
    Ou as-tu mis ces infos, dans ta page ?
    De tête, changer le timeout de session ne fonctionnera que dans l'évènement session.start..autant le mettre dans le web.config

    Sinon, tu as plein de raisons qui peuvent faire que ta session part en cacahouète, surtout si tu utilise le mode inproc pour le stockage de ta session...ceci dit, si tu te poses encore la question, c'est probablement que tu n'es pas allé lire les liens postés dans les messages précédents, ce que je t'invite à faire au plus tot

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  9. #9
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 136
    Par défaut
    Citation Envoyé par Philippe Vialatte Voir le message
    Ou as-tu mis ces infos, dans ta page ?
    De tête, changer le timeout de session ne fonctionnera que dans l'évènement
    J'ai placé le réglage du timeout dans le web.config et le probleme est toujours le même en mode Inproc.

    Citation Envoyé par Philippe Vialatte Voir le message
    Sinon, tu as plein de raisons qui peuvent faire que ta session part en cacahouète, surtout si tu utilise le mode inproc pour le stockage de ta session...ceci dit, si tu te poses encore la question, c'est probablement que tu n'es pas allé lire les liens postés dans les messages précédents, ce que je t'invite à faire au plus tot
    J'ai lu le lien sur les états des sessions, et je n'arrive pas à mettre en place l'état "stateServer", je n'arrive a trouver l'attribut "stateConnectionString" de mon hébergeur. J'ai un héberment mutualisé chez Ikoula, si quelqu'un sais comment le régler ?

Discussions similaires

  1. [Session] problème avec le session-timeout
    Par khokho dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 29/06/2006, 13h20
  2. portée de session.timeout
    Par ryan dans le forum ASP
    Réponses: 6
    Dernier message: 06/04/2006, 23h21
  3. [Session]Session timeout
    Par Sniper37 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 13/12/2005, 09h29
  4. valeur maximale de session.timeout?
    Par ryan dans le forum ASP
    Réponses: 3
    Dernier message: 13/09/2004, 22h11
  5. [JSP]recuperer session-timeout dans web.xml
    Par seb_fou dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 07/05/2004, 16h01

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