2009-09-12 9 views
0

comment est-ce que je devrais stocker des données d'utilisateur dans asp.net mvc? Supposons qu'un utilisateur souhaite voir 50 enregistrements par page. Je voulais l'enregistrer en session, mais si je le fais correctement, la session se réinitialise chaque fois qu'un nouveau contrôleur est initialisé. Alors, où? Un biscuit?asp.net mvc stocker les données utilisateur

Répondre

2

Généralement, la session n'est pas réinitialisée lors de l'initialisation du contrôleur! Assurez-vous de ne pas effacer la session du code. Quoi qu'il en soit, le stockage de cette session entraîne la réinitialisation de la limite d'enregistrement assez souvent (dépend du paramètre de délai d'attente de session). Pensez à stocker cela dans le profil de l'utilisateur conservé dans la base de données (sera utilisé après la connexion), ou dans un cookie (ne nécessite pas de connexion à utiliser). Cela gardera ce paramètre pour toujours - vos utilisateurs apprécieront que :)

+0

Ok, je pensais que ce serait de ma faute et je pensais au profil db, mais pourriez-vous expliquer quand la session est-elle réinitialisée? Ou comment l'utiliser correctement? – Trimack

+0

Le délai d'attente de session fait référence au nombre de minutes avant l'annulation de la session utilisateur après la dernière demande. Il est défini dans web.config (ou config site IIS). Par défaut, la session est stockée dans InProc, ce qui signifie que chaque redémarrage de votre application effacera la session (par exemple: lorsque vous publiez de nouvelles versions dll dans le répertoire/bin). Vous pouvez stocker l'état de la session dans un processus distinct (service SessionState dans Windows) ou un événement dans SQL db. S'il vous plaît take a look what MS says about Session :) – twk

+0

Lien ici: http://msdn.microsoft.com/fr-fr/library/system.web.sessionstate.httpsessionstate.aspx – twk

1

Au lieu d'utiliser la construction dans ProfileProvider-système dans ASP.NET, que vous ne devez utiliser que je vous souhaitez conserver les paramètres utilisateur sur plusieurs visites, vous pourriez mettre à la place d'un les paramètres settings dans la session. Peut-être enveloppé dans un objet sérialisable.

session

est effacée si

  • vous clair dans votre code
  • le cookie du stockage sessionid expire (en fonction de vos paramètres i web.config) (si un cookie expire au cours d'une session, il ne expire vraiment avant que l'utilisateur ferme toutes les fenêtres du navigateur)
  • si l'application est redémarré (sauf si vous utilisez des sessions collantes (DB sessions) à base auquel cas sessiondata persiste à travers redémarrage de l'application)
Questions connexes