Je travaille avec une application asp.net qui stocke la plupart des données dans une base de données et non dans une session. Je me demande quels sont les avantages et les inconvénients de chacun et quelle est la meilleure façon de procéder. Par exemple, vous avez un site assez occupé et au lieu de stocker des variables spécifiques à l'utilisateur en session, il existe une table DB appelée données utilisateur qui peut stocker toutes les données spécifiques à l'utilisateur accessibles depuis n'importe quelle page. Quel est le meilleur moyen d'y aller, une session ou une base de données?Enregistrement de variables utilisateur dans la base de données par rapport à la session dans asp.net
Répondre
Question intéressante. Si ce sont des données qui ne sont pas importantes entre les sessions (par exemple, la dernière page consultée) -> session. Si ce sont des données qui devraient être persistantes (disons, mot de passe) -> base de données. Le cas intéressant et celui auquel vous vous référez probablement: Les données qui devraient être persistantes mais qui sont aussi souvent utilisées (par exemple, le nom d'utilisateur). De ceux-ci, j'ai tendance à copier ces valeurs de la base de données dans la session qui me permettent de travailler sans accès à la base de données dans les pages avec des tâches triviales.
Tout ce qui est stocké dans l'état de la session disparaît lorsque l'AppDomain est réinitialisé.
Vous pouvez éviter cela en utilisant un gestionnaire d'état de session hors proc, mais ce n'est pas mieux qu'une base de données.
session (mais cela dépend beaucoup de la configuration de la session):
- Pas d'accès base de données, ou moins. Stockage temporaire: vous risquez de perdre l'information, au moins à la fin de la session.
- Peut-être un problème de sécurité, selon l'emplacement où vous stockez les informations de session
- Non partagé: vous pouvez rencontrer des problèmes si vous utilisez une batterie de serveurs, un serveur peut ne pas avoir accès à l'autre session de serveur.
- Peut ne pas fonctionner si le client a désactivé les cookies.
Base de données:
- trafic de base de données pour chaque postback si vous avez besoin d'informations sur chaque page.
- Stockage permanent.
- Aucune information enregistrée avec le client (cookies ...). Partagé: données accessibles depuis n'importe quel serveur d'une batterie de serveurs Web.
Veuillez noter que vous pouvez stocker des informations de session dans la base de données. C'est pourquoi j'utilise le mot "peut" dans la partie Session. Voir here some session configuration and possibilities
Dans de nombreux cas, j'utilise Session
pour stocker des données temporaires sur la ... session ... "session". Dans ASP.NET, la session est configurable. Vous pouvez utiliser in-proc
(par défaut) qui utilise la mémoire du serveur. Vous pouvez également configurer la session pour utiliser une base de données ou un outil de gestion de session (dans le cas où la mémoire du serveur est un problème ou si vous passez à un environnement de cluster/batterie).
La session est destinée à être temporaire. C'est très bien lorsque vous stockez vraiment des données sur l'utilisateur qui utilise votre application à ce moment-là. Lorsque l'utilisateur quitte l'application et que sa session expire, la mémoire est libérée. Vous n'avez pas à effacer manuellement quelque chose.
La session utilise la mémoire du serveur. Tant que vous avez assez de mémoire et que vous n'êtes pas sur un cluster de serveurs, cela fonctionne très bien.La mémoire est rapide, donc l'obtention et la configuration des données en session est très rapide et n'utilise aucune bande passante réseau.
J'ai dit tout cela, dans certaines de mes applications, j'ai une session configurée pour utiliser SQL. C'est fondamentalement la même chose que d'utiliser la base de données directement, mais je n'ai pas à traiter avec DAL ... laissez simplement le framework fonctionner pour vous.
- 1. Enregistrement des événements ASP.NET dans la base de données
- 2. Gestion de session utilisateur dans asp.net
- 3. Variable de session Asp.net de la base de données SQL
- 4. variables de session vs base de données
- 5. PHP - Gestion de la session par défaut par rapport à la manipulation session personnalisé
- 6. Enregistrement dans la base de données à l'aide de JQuery
- 7. Questions sur la base de données locale par rapport à la base de données
- 8. Comment accéder aux variables de session à partir de la classe Base dans ASP.Net?
- 9. Enregistrement de la durée de la session dans une base de données sur le site Web asp.net
- 10. asp.net formulaire de sortie: streamwriter pour écrire dans le fichier par rapport à la connexion à la base de données
- 11. Enregistrement des valeurs de formulaire dans la base de données après la connexion d'un utilisateur
- 12. Enregistrement des paramètres utilisateur dans une base de données
- 13. Enregistrement de la base de données dans Hash-of-hashes
- 14. CreateUserWizard - Comment vérifier les données par rapport à la base de données pendant l'exécution de l'assistant?
- 15. Enregistrement d'une adresse IP dans la base de données
- 16. Comment authentifier un utilisateur dans blackberry par rapport à une base de données en ligne?
- 17. Comment valider par rapport à l'objet "en mémoire" par rapport à l'objet stocké dans la base de données
- 18. Enregistrement des données dans la session rails à utiliser dans le formulaire à la prochaine demande
- 19. Vérification par rapport à une liste de valeurs dans la base de données
- 20. Rapport SSRS dans l'application Web supprimant les variables de session?
- 21. Enregistrement flux Rss dans la base de données
- 22. Enregistrement d'images sur la base de données
- 23. Sécurisation de la base de données utilisateur ASP.Net
- 24. Enregistrement de plus de 1000 enregistrements dans la base de données à la fois
- 25. Insertion d'un enregistrement dans la base de données Msaccess
- 26. Changements de session et de session d'un utilisateur web asp.net
- 27. Enregistrer l'image du profil utilisateur dans la base de données
- 28. SQL Server à la conversion MySql - schéma par rapport à la base de données question
- 29. Connexion manuelle à la base de données dans Asp.net MVC
- 30. Accéder à la base de données via la fonction par rapport à l'objet, différence?