Pour diverses raisons, j'en ai marre de l'état de la session ASP.NET et j'essaie de le faire moi-même (question séparée bientôt liée à pourquoi je suis marre et si c'est faisable de le faire moi-même, mais pour l'instant nous allons supposons que c'est). Les problèmes de sécurité mis à part, il semble que les sessions de suivi impliquent un peu plus que de stocker un cookie avec un guid et d'associer ce guid à une petite table de "sessions" dans la base de données contenant un petit nombre de champs pour suivre le délai et pour lier à la clé primaire dans la table de l'utilisateur, pour les sessions qui sont liées aux utilisateurs enregistrés.Comment ASP.NET (ou tout cadre Web) implémente-t-il l'état de session persistante?
Mais je suis bloqué sur un détail avec le cookie, dans le cas où le navigateur de l'utilisateur n'est pas configuré pour accepter les cookies. Il me semble que chaque fois qu'un utilisateur accède à une page dont l'état de session est activé, ASP.NET doit déterminer si le navigateur supporte les cookies. Si un cookie de session est déjà envoyé avec la demande, il est évident que les cookies sont acceptés. Si ce n'est pas le cas, il semble qu'il a besoin de vérifier, ce qui, comme je le comprends, consiste à essayer d'écrire un cookie et de rediriger vers une page qui essaie de lire le cookie. Il semble donc, lorsqu'un utilisateur avec les cookies mis plusieurs visites de pages d'un site, que ASP.NET
(a) doit faire ce test aller-retour pour chaque page que l'utilisateur visite ou
(b) doit supposer que le navigateur accepte les cookies et créer un enregistrement avec un identifiant de session (provisoire) pour l'utilisateur sur chaque page - et si l'état de la session est censé être persistant, il semble qu'il doit écrire cet identifiant de session base de données sur chaque page.
Mais (a) semble fou et (b) semble fou aussi, puisque nous accumulerions rapidement des identifiants de session pour toutes ces sessions d'une seule page. Donc je pense qu'il doit y avoir une autre astuce/heuristique qui est utilisée pour savoir quand faire le test aller-retour et/ou quand créer un enregistrement pour la session.
Ai-je tort d'être perplexe?
(Pour être clair, je ne parle pas d'implémenter une solution de stockage personnalisée dans le système d'état de session enfichable d'ASP.NET.Je parle de sauter complètement le système d'état de session d'ASP.NET Ma question est une version plus détaillée de celui-ci: Implementing own Session Management in ASP.NET.)
Après avoir lu plusieurs fois, je pense que je sais ce que vous essayez de faire passer. Oui, (a) avec (b) semble fou en effet. Espérons que quelqu'un puisse nous éclairer. –