Tout comme en PHP, il est possible de créer des variables de session en ASP.NET.
Par défaut, les sessions sont activées pour chaque page Web. Il n’y a donc rien de spécial à faire pour pouvoir utiliser les variables de session en ASP.NET.
▼Publicité Le texte se poursuit plus bas
Il est possible de désactiver les sessions sur une page particulière afin d’améliorer ses performances. Ceci se fait en ajoutant l’attribut EnableSessionState="False" dans la directive de page située en haut du fichier .aspx.
Les pages qui contiennent cet attribut ne pourront pas utiliser les variables de session.
Ex :
<%@ Page ... EnableSessionState="False" %>
Il est possible de configurer la durée d'une session dans le fichier Web.config. La durée de la session correspond au délai pendant lequel une session peut demeurer inactive avant d'être abandonnée. Par défaut, la durée de la session est de 20 minutes. Pour la modifier, il faut entrer un attribut timeout dans le sessionState.
Ex :
<system.web>
...
<sessionState mode="InProc" timeout="10" />
...
</system.web>
La durée du timeout est en minutes. Dans l'exemple précédent, la session se terminera lorsque l'usager aura passé 10 minutes sans faire de requête au serveur ou lorsqu'il fermera son navigateur.
L’extrait de code suivant permet d’ajouter une variable de session. La syntaxe est très similaire à celle utilisée en PHP.
Ex :
Session["produit_id"] = valeur ;
Avant d’essayer de lire une variable de session, il faut toujours s’assurer qu’elle ait été initialisée.
Ex :
if (Session["produit_id"] != null)
{
...
}
else
{
...
}
À chaque fois qu’on lit une variable de session, il faut prendre soin de la transtyper car ASP.NET stoque les variables de session dans un vecteur de type Object.
Ex :
textBoxProduit.Text = Session["produit_description"].ToString() ;
estActif = (bool)Session["actif"];
Si vous travaillez avec une bibliothèque de fonctions, vous devrez prendre une précaution supplémentaire pour pouvoir accéder aux variables de session. En effet, ce type de fichier ne peut pas accéder directement à la variable Session.
Vous devrez donc initialiser une variable de type System.Web.SessionState.HttpSessionState et lui assigner la valeur System.Web.HttpContext.Current.Session.
Ex :
System.Web.SessionState.HttpSessionState session = System.Web.HttpContext.Current.Session;
if (session["usager_id"] != null)
{
...
}
Les sessions ne peuvent pas être utilisées n’importe où dans le code d’une page Web. Par exemple, si vous tentez d’initialiser ou de récupérer une variable de session dans le constructeur d’une page, donc lorsque la page n’est pas totalement construite, vous obtiendrez l’erreur « L'état de session ne peut être utilisé que lorsque enableSessionState a la valeur true. ».
Site fièrement hébergé chez A2 Hosting.