> Tech > Utilisation du gestionnaire de sessions Web

Utilisation du gestionnaire de sessions Web

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Pour exploiter le nouveau gestionnaire, il faut passer le GUID sur chaque page. Pour cela, associez le GUID à la chaîne d’URL lorsque la page suivante est appelée dans le code :
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01
Utilisation du gestionnaire de sessions Web

italic; »>Transitional//EN"
<html>
<body>
<a href="page2.asp?
<%=guid%>">Click here to go to next page</a>
</body>
</html>

Si vous ne passez pas le GUID en tant que paramètre d’URL sur chaque page, les valeurs que vous avez stockées dans la table Sessvars ne seront pas incluses dans la session de l’utilisateur. La méthode de l’URL ajoute un très léger travail de codage car vous devez faire preuve de discipline concernant la lecture et le passage de valeurs sur chaque page. Toutefois, il est possible d’employer un fichier include à cette fin et même de l’ajouter à votre modèle Web.

Pour ce faire, vous conditionnez votre code dans un fichier distinct, puis vous utilisez la directive #include dans le code en haut de la page, afin d’inclure le fichier. En reprenant notre exemple HTML ci-dessus, le code de votre page aura l’aspect suivant :
<!–#include virtual
file="/scripts/
sess_mgr.asp" –>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01
Transitional//EN"
<html>
<body>
<a href="page2.asp?
<%=guid%>">Click here to go to next page</a>
</body>
</html>

Dans cet exemple, la directive #include indique au compilateur d’exécuter le code contenu dans le fichier sess_ mgr.asp avant d’effectuer le rendu de la page. Il convient de noter que la fonction newid() de SQL Server ne génère pas de GUID ordonnés séquentiellement. Par conséquent, vous n’utilisez pas le GUID proprement dit pour déterminer si une valeur a été ajoutée ou modifiée, ce qui est un atout pour la sécurité.

Néanmoins, vous trouverez dans SQL Server 2005 une nouvelle fonction de GUID, intitulée newsequentialid() laquelle, comme son nom le suggère, génère des GUID séquentiels. L’inconvénient de cette approche réside dans la possibilité de deviner le GUID suivant dès lors que vous connaissez la séquence. Pour les besoins de l’exemple, vous devez continuer à employer la fonction newid() dans SQL Server 2005, dans la mesure où elle est encore prise en charge.

L’utilisation du gestionnaire de sessions sur chaque page va bientôt devenir une seconde nature pour vous, en particulier lorsque vous en retirerez l’avantage concomitant de pouvoir suivre les entrées spécifiques à l’utilisateur qui vous permettront de personnaliser l’interaction de celui-ci avec votre site Web au cours de la session.

Gardez à l’esprit que la table Sessvars pourrait rapidement atteindre une taille entraînant des contre-performances si elle n’est pas gérée. Par conséquent, il faudra créer une tâche destinée à supprimer régulièrement les anciennes entrées.

Par exemple, pour supprimer les entrées vieilles de plus de 12 heures, utilisez la procédure stockée suivante :
CREATE PROCEDURE del_sessvars
AS
DELETE FROM sessvars
WHERE DateDiff(hh,SVar_Date,Get
Date()) >= 12

Si votre site est volumineux, exécutez fréquemment cette procédure stockée, peut-être même une fois par heure. Vous souhaiterez peut-être également utiliser une valeur inférieure à 12 heures. Cela permettra de préserver la petite taille et l’efficacité de votre table Sessvars, afin qu’elle n’entraîne pas de ralentissement de la consultation des pages. De même, assurez- vous d’indexer la colonne GUID, car celle-ci est utilisée à chaque requête ou mise à jour au niveau de la table Sessvars.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010