Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment ajouter un objet en variable de session?
auteur : David Pedehourcq

Dim MonObjet As Object
Dim IDvariable As String = "ID"
HttpContext.Current.Session.Add(IDvariable,MonObjet)
ou


Session(IDVariable) = monObjet
qui effectue la même opération mais de manière implicite.

On peut ajouter n'importe quel objet en variable de session et retrouver cet objet par la suite en fonction de son ID.

Quand on ajoute une variable de session celle-ci est unique pour chaque utilisateur.

On veillera à ne pas stocker de trop gros objets en variable de session car pour chaque utilisateur le serveur web stockera cet objet en mémoire tant que la session est active.

L'utilisation abuse des variables de session peut donc poser des problèmes de consommation de mémoire vive sur le serveur web avec une forte montée en charge.

lien : fr Introduction à asp.NET (Tome 3): utilisation des variables de session et d'application, passage d'arguments à une url
lien : faq Comment récupérer un objet stocké en variable de session?

Comment récupérer un objet stocké en variable de session?
auteur : David Pedehourcq

dim MonObjet as Object
dim IDvariable as String = "ID"
MonObjet = HttpContext.Current.Session(IDvariable)
Si il n'existe pas de variable appelée "ID", MonObjet vaudra Nothing. Il est donc préférable de vérifier que MonObjet ne vaut pas Nothing avant d'effectuer certaines opérations dessus tels que des castings, des substring, ...

lien : fr Introduction à asp.NET (Tome 3): utilisation des variables de session et d'application, passage d'arguments à une url
lien : faq Comment ajouter un objet en variable de session?

Après le login, j'enregistre des éléments en session et celles-ci sont perdues. Pourquoi et comment éviter cela ?
auteur : Didier Danse
L'exemple typique est le suivant :

 
Session["IsLogged"] = True
Response.Redirect("~/page.aspx")
		
		
Cependant, la variable de session n'est pas enregistrée pour la simple raison qu'un Response.Redirect tel qu'indiqué arrête d'envoyer la réponse (une exception ThreadAbortException est lancée). Dès lors le cookie temporaire contenant le SessionID n'existe pas vu qu'il est censé être envoyé lors de cette réponse.
Pour éviter cela, utilisez la méthode prévue à cet effet, à savoir FormsAuthentication.RedirectFromLogingPage qui évite de stopper l'exécution de manière brutale. De plus, cette méthode permet de renvoyer la page qui avait été initialement demandée, ce qui permet par exemple de permettre d'enregistrer une adresse dans ses favoris.


Quelles sont les causes d'une perte de session possibles ?
auteur : Didier Danse
Tout d'abord, si cela arrive lors du login, je vous conseille de lire Après le login, j'enregistre des éléments en session et celles-ci sont perdues. Pourquoi et comment éviter cela ?
Ensuite, voici quelques pistes, en vrac :
  • Le pool d'applications est configuré pour être recyclé plus régulièrement que ce que vous ne l'espériez
  • Votre nom de serveur comporte un underscore (ceci interfère sur la création du fameux cookie volatile contenant le sessionID)
  • Le processus aspnet_wp.exe (ou w3wp.exe sous Windows 2003) s'arrête (notez qu'il s'arrête automatiquement toutes les 29h par défaut ou après 20 minutes d'inactivité)
  • L'antivirus empêche la création du cookie temporaire
  • Un répertoire est supprimé au sein de l'application


Lorsque je stocke une 21è information en session, je les perds toutes. Est-ce normal et pourquoi ?
auteur : Didier Danse
Normal ? Disons que c'est compréhensible lorsque l'on lit ceci :
Pour résumer, sous Internet Explorer, seulement 20 cookies sont autorisés par domaine.


precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2007  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com