Quelle est la différence entre SessionState et ViewState?

117

Quelle est la différence entre SessionState et ViewState dans ASP.NET?

Natrium
la source
7
J'ai essayé Google, mais je n'ai pas trouvé d'aperçu.
Natrium

Réponses:

143

L'état de la session contient des informations relatives à une session spécifique (par un client / navigateur / machine particulier) avec le serveur. C'est un moyen de suivre ce que fait l'utilisateur sur le site ... sur plusieurs pages ... au milieu de l'apatridie du Web. par exemple, le contenu du panier d'un utilisateur particulier est constitué de données de session. Les cookies peuvent être utilisés pour l'état de la session.
Afficher l'état , d'autre part, est des informations spécifiques à une page Web particulière. Il est stocké dans un champ caché afin qu'il ne soit pas visible pour l'utilisateur. Il est utilisé pour maintenir l'illusion de l'utilisateur que la page se souvient de ce qu'il a fait dessus la dernière fois - ne lui donnez pas une page propre à chaque fois qu'il publie. Consultez cette page pour en savoir plus .

Gishu
la source
96

L'état de la session est enregistré sur le serveur, ViewState est enregistré dans la page.

L'état de session est généralement effacé après une période d'inactivité de l'utilisateur (aucune requête ne contenant l'identifiant de session dans les cookies de requête).

L'état d'affichage est publié lors de la publication ultérieure dans un champ masqué.

penser avant le codage
la source
30
+1 Oui - point important que le ViewState se déplace de haut en bas entre le client et le serveur, mais SessionState reste sur le serveur.
Gordon Mackie JoanMiro le
1
Cela aurait dû être la réponse officielle
Fandango68
33

SessionState

  • Peut être conservé en mémoire, ce qui en fait une solution rapide. Ce qui signifie que l'état ne peut pas être partagé dans Web Farm / Web Garden.
  • Peut être conservé dans une base de données, utile pour les Web Farms / Web Gardens.
  • Est effacé lorsque la session meurt - généralement après 20 minutes d'inactivité.

ViewState

  • Est envoyé dans les deux sens entre le serveur et le client, prenant de la bande passante.
  • N'a pas de date d'expiration.
  • Est utile dans une ferme Web / jardin Web
Jesper Fyhr Knudsen
la source
14

Utilisation: si vous allez stocker des informations auxquelles vous souhaitez accéder sur différentes pages Web, vous pouvez utiliser SessionState

Si vous souhaitez stocker les informations auxquelles vous souhaitez accéder à partir de la même page, vous pouvez utiliser Viewstate

Stockage Le Viewstate est stocké dans la page elle-même (en texte chiffré), tandis que le Sessionstate est stocké sur le serveur.

Le SessionState s'effacera dans les conditions suivantes

  1. Effacé par le programmeur
  2. Effacé par l'utilisateur
  3. Temps libre
Cyril Gupta
la source
5
Les ViewStates ne sont pas chiffrés. Ils ont juste l'air de cette façon, mais peuvent être facilement décodés.
Vandel212
5

La session est principalement utilisée pour stocker des données spécifiques à l'utilisateur [données spécifiques à la session]. Dans le cas d'une session, vous pouvez utiliser la valeur pour toute la session jusqu'à ce que la session expire ou que l'utilisateur abandonne la session. Viewstate est le type de données qui n'a de portée que dans la page dans laquelle il est utilisé. Vous ne pouvez pas avoir de valeurs de viewstate accessibles à d'autres pages, sauf si vous transférez ces valeurs vers la page souhaitée. De même, dans le cas de viewstate, toutes les données de contrôle côté serveur sont transférées vers le serveur en tant que paire clé / valeur dans __Viewstate et transférées en arrière et rendues au contrôle approprié dans le client lors de la publication.

rahul
la source