|
Une session débute lorsque le connecté arrive sur le site
et se termine au dela d'un certain délais d'inactivité, determiné par Session.TimeOut.
- Lors de la connexion d'un nouvel
utilisateur = > Session_OnStart (dans Global.asa)
- Lors de la fin de session du connecté
= > Session_OnEnd (dans Global.asa)
mais la aussi, c'est très théorique,
Pour qu'une seule et même session accompagne le connecté
durant toute la visite du site, il faut que celui (son
navigateur) accepte les cookies non persistents.
Qu'est qu'un cookie non persistent ?
Une information transmise par le serveur
Web au navigateur du client. Cette information est ensuite
retournée au site à chaque requête (demande de page).
Contrairement à un cookie classique, qui peut-être conservé sur
disque avec l'heure de votre dernière viste, un cookie non
persistent est automatiquement effacé lorsque vous coupez la
connexion avec le site.
A quoi ressemble t-il
?
Nom du cookie : ASPSESSIONIDGGQQGHED
Données du cookie : CIOBOILBMHCKEMMOIHBAEPDH
Mais lors que se passe t-il si le client refuse les cokkies
non persistents ?
A chaque demande de page, le serveur considère qu'il s'agit
d'une nouvelle connexion et démarre une nouvelle session, en
créant un nouvel Objet Session.
Ceci est très ennuyeux pour les sites purement ASP qui
stockent des informations utiles dans des variables "Session".
Lors de l'accès à une nouvelle page, les informations
stockées dans la page précédente sont perdues.
Un bon moyen de savoir si le client accepte les cokkie non
persistents est de déclarer une variable sur la page d'acceuil
et de la tester dès la seconde page. Si celle ci est vide, le
client n'accepte pas les cookie non persistents.
Ex : Page d'accueil :
<%
Session("TestCookie") = "Hello" %>
Page 2 :
<% if
Session("TestCookie") <> "Hello" then
Response.Redirect("Avertir.asp") %>
Dans cet exemple, si sur la page 2,
la variable est d'une valeur différente de celle attendue,
on redidige le connecté sur une page d'avertissement.
NB : Pour que ce code fonctionne sans erreur, vous
devez initialiser la variable Response.Buffer = True
Mais alors que faire?
Vous n'avez malheureusement pas
36 solutions. Soit, vous redirigez toutes les personnes qui
n'acceptent pas les cookies persistents vers une page
d'avertissement qui leur explique que les cookies non
persistents sont innofensifs, soit vous passez les informations
utiles via des paramètres d'url. Autre solution, très peu
élégante et inconcevable sur un site fréquenté, vous écrivez
chaque information dans un fichier que vous relisez à chaque
page.
|