2009-12-03 5 views
2

Cela va être une question assez large, et toutes suggestions, exemples, liens sont les bienvenus!Changements de session et de session d'un utilisateur web asp.net

Je suis à la recherche d'un bon moyen pour enregistrer la session de mes utilisateurs, et les actions sur le site jusqu'à un certain point.

Le site en question est un site pour faire des réservations. Les utilisateurs commencent par faire une recherche, faire quelques étapes de collecte de données et de sélections et se retrouvent avec une réservation.

Donc, ce que j'ai besoin de mettre en œuvre est une sorte de journalisation des variables de session en cours à chaque étape prise par l'utilisateur. Et peut-être d'autres informations valables. Logging devrait de préférence être fait à la base de données. En fin de compte, je voudrais associer toutes ces sessions avec une référence de réservation. L'objectif est de plus tard si quelque chose ne va pas avec la réservation ou si nous devons enquêter sur une situation à avoir toutes les informations dont nous avons besoin. Je comprends que log4net est un choix populaire pour la journalisation, et je l'utilise un peu moi-même à des fins simples, mais je ne trouve pas de bons exemples concernant ma situation.

Cela devrait être une situation courante, je suis curieux de savoir comment les autres le font.

Répondre

1

La façon dont j'ai configuré ceci est de créer deux tables. On tient une ligne par session, avec quelques données de session (id, timestamp, ip, nom d'utilisateur (le cas échéant), et autre) et une table session_data avec quelques lignes par session, chaque ligne contenant un ID session (référençant la table sessions). une clé (décrivant ce qui est enregistré, comme 'entryform', 'searchform', ou 'orderform') et un champ XML contenant l'objet état de session sérialisé.

Insérez une ligne dans la table de session à l'aide de session_onstart de global.asa. Insérer des lignes dans session_data selon les besoins.

J'ai utilisé des procédures stockées simples, mais je suppose que vous pouvez configurer log4net pour insérer la ligne. Une mise en garde: J'ai installé nlog une fois pour enregistrer les sessions et les données de session, mais nlog (et je suppose que log4net aussi) se connecte sur son thread on et n'écrit pas toujours dans la base de données. Je me suis éloigné de nlog pour stocker les données de session critiques (mais je l'ai utilisé pour tous les autres buts de débogage/journalisation/traçage)

+0

Nous vous remercions de vos suggestions. C'est certainement un bon moyen de le faire, mais j'espérais plutôt un outil déjà complet, il existe n'importe quoi .. Quelque chose qui s'occupe de toutes ces insertions de données de session, et un moyen de le voir dans le bon sens. –

+0

[note à l'interface utilisateur: nous avons besoin de plus de séparation entre "Ajouter un commentaire" vs "Ajouter une réponse"] >> Vous cherchez à peu près la même chose - vous pensez qu'un tel outil existerait - Les outils pour créer cet outil existent ... logparser pourrait être la base de certains utilitaires de développement très intéressants - pensez à firebug pour IIS7. << – justSteve