2009-12-31 3 views
2

Je suis nouveau sur ASP.NET. Je crée un site web dans lequel je dois créer une session pour chaque utilisateur qui se connecte au site. Maintenant, je ne suis pas en mesure d'imaginer comment stocker la session dans ma base de données.Je ne sais pas comment stocker l'identifiant de session dans l'état de session sql

J'ai lu quelques livres pour le même et j'ai obtenu comment configurer l'état de session. Mais je suis toujours au même endroit où j'ai commencé. Je ne suis pas en mesure d'obtenir où devrais-je enregistrer l'ID de session. J'utilise l'état de session du serveur SQL. J'ai créé la base de données aspnetdb et toutes les tables sur leur. Mais je ne sais pas comment les utiliser. Comment enregistrer mon ID de session dans la base de données. Je suis totalement confus comment expliquer mon problème.

Répondre

3

Vous n'avez pas besoin de stocker l'ID de session dans la base de données - cette partie est fait pour vous par le moteur d'exécution, en supposant que vous utilisez des sessions en mode SQL Server.

Le fournisseur de session lit les données de session du DB au début de chaque requête et les écrit à la fin de chaque requête. Il le fait en définissant un cookie qui contient l'ID de session, puis en utilisant la valeur du cookie comme clé pour la recherche de base de données afin de trouver le reste des données de session.

Vous pouvez toujours accéder à l'ID de session à partir de la propriété Session.SessionID, mais vous aurez rarement besoin de le faire. Le cookie d'ID de session n'est pas envoyé au client (et les données de session ne sont pas enregistrées dans la base de données) jusqu'à la première fois que vous enregistrez un élément dans l'objet Session. Vous pouvez le voir facilement avec un débogueur Web tel que Fiddler. FWIW, normalement, les connexions ne doivent pas être gérées en utilisant l'état de session. Le fournisseur d'appartenance ASP.NET standard, par exemple, utilise un système parallèle basé sur des cookies.

4

Voir HOW TO: Configure SQL Server to Store ASP.NET Session State

Fondamentalement, vous devez configurer dans web.config:

<sessionState 
      mode="SQLServer" 
      sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>" 
      cookieless="false" 
      timeout="20" 
    /> 
+0

thx pour l'aide. Mais j'ai aussi fait ça. Mais je ne sais toujours pas comment ça marche. comment mon identifiant de session est maintenu dans la base de données. Même moi, je ne sais pas si la session des utilisateurs sera maintenue ou non en faisant cela. J'ai même écrit la clé de la machine dans le fichier de configuration Web, mais je ne sais pas comment tout cela fonctionne. Je ne suis pas capable de visualiser. Plz aide à me considérer comme un novice dans ce contexte –

Questions connexes