Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

Client Serveur – Les sessions

Programmation Client Serveur



Pourquoi ?:

Utilisez l’état de session ASP.NET pour stocker et récupérer des valeurs pour un utilisateur.

Contexte :

  • L’état de session ASP.NET vous permet de stocker et de récupérer des valeurs pour un utilisateur à mesure que ce dernier navigue dans les différentes pages ASP.NET d’une application Web.
  • HTTP est un protocole sans état. Cela signifie qu’un serveur Web traite chaque requête HTTP pour une page comme une demande indépendante.
  • Le serveur ne conserve aucune connaissance de valeurs variables utilisées pendant des demandes précédentes.
  • L’état de session ASP.NET identifie les demandes du même navigateur en tant que session dans une fenêtre à durée limitée et offre un moyen de rendre persistantes les valeurs variables pour la durée de cette session.
  • Par défaut, l’état de session ASP.NET est activé pour toutes les applications ASP.NET.

Alternatives :

  • État de l’application, qui stocke des variables à qui peuvent être accédées par tous les utilisateurs d’une application ASP.NET.
  • Propriétés de profil, qui rendent des valeurs d’utilisateur persistantes dans un magasin de données sans les expirer.
  • Mise en cache ASP.NET, qui stocke des valeurs dans la mémoire qui est disponible à toutes les applications ASP.NET.
  • État d’affichage, qui rend des valeurs persistantes dans une page.
  • Cookies.
  • La chaîne de requête et champs sur un formulaire HTML qui sont disponibles d’une requête HTTP.

Variables de session :

  • Les variables de session sont stockées dans un objet SessionStateItemCollection qui s’affiche via la propriété HttpContext.Session.
  • Dans une page ASP.NET, les variables de session actuelles sont exposées à travers la propriété Session de l’objet Page.
  • La collection de variables de session est indexée par le nom de la variable ou par un index d’entiers.
  • Les variables de session sont créées par référence à leur nom.
  • Vous n’avez pas besoin de déclarer de variable de session ni d’en ajouter explicitement à la collection.
  • L’exemple suivant indique la manière de créer des variables de session au sein d’une page ASP.NET pour le prénom et le nom d’un utilisateur et de leur affecter les valeurs récupérées depuis les contrôles TextBox.
  • Les variables de session peuvent être de tout type .NET Framework valide.
  • L’exemple suivant stocke un objet ArrayList dans une variable de session nommée StockPicks. La valeur retournée par la variable de session StockPicks doit être convertie au type approprié lorsque vous la récupérez de la collection SessionStateItemCollection.

Identificateurs de session :

  • Les sessions sont identifiées par un identificateur unique pouvant être lu à l’aide de la propriété SessionID.
  • Lorsque l’état de session est activé pour une application ASP.NET, chaque demande d’une page de l’application est examinée par rapport à une valeur SessionID envoyée à partir du navigateur.
  • Si aucune valeur SessionID n’est fournie, ASP.NET démarre une nouvelle session et la valeur SessionID de cette session est envoyée au navigateur avec la réponse.
  • Par défaut, les valeurs SessionID sont stockées dans un cookie. Toutefois, vous pouvez également configurer l’application pour stocker des valeurs SessionID dans l’URL pour une session « sans cookie ».
  • Une session est considérée comme active tant que les demandes continuent à être effectuées avec la même valeur SessionID.
  • Si la durée entre les demandes d’une session donnée dépasse la valeur du délai d’expiration spécifiée en minutes, le système considère alors que la session a expiré. 
  • Les demandes effectuées avec une valeur SessionID qui a expiré entraînent une nouvelle session.

SessionID sans cookie :

  • Par défaut, la valeur SessionID est stockée dans un cookie de session sans date d’expiration dans le navigateur.
  • Cependant, vous pouvez spécifier que les identificateurs de session ne soient pas stockés dans un cookie en affectant la valeur true à l’attribut cookieless dans la section sessionState du fichier Web.config.
  • L’exemple suivant montre un fichier Web.config qui configure une application ASP.NET pour utiliser des identificateurs de session sans cookie.
  • ASP.NET maintient un état de session sans cookie en insérant automatiquement un ID de session unique dans l’URL de la page.
  • Par exemple, l’URL suivante a été modifiée par ASP.NET pour inclure l’ID de session unique lit3py55t21z5v55vlm25s55 :
  • Lorsque ASP.NET envoie une page au navigateur, il modifie tous liens dans la page qui utilisent un chemin d’accès relatif à l’application en incorporant une valeur d’ID de session dans les liens.
  • L’état de session est maintenu tant que l’utilisateur clique sur liens modifiés de cette manière.
  • Toutefois, si le client réécrit une URL fournie par l’application, il est possible qu’ASP.NET ne soit pas capable de résoudre l’ID de session et d’associer la demande à une session existante. Dans ce cas, une nouvelle session est démarrée pour la demande.

Régénération des identificateurs de session expirés :

  • Par défaut, les valeurs de l’ID de session utilisées dans les sessions sans cookie sont recyclées.
  • En d’autres termes, si une demande est effectuée avec un ID de session qui a expiré, une nouvelle session est démarrée en utilisant la valeur SessionID fournie avec la demande.
  • Cela peut provoquer une session qui est partagée involontairement lorsqu’un lien qui contient une valeur SessionID sans cookie est utilisé par plusieurs navigateurs. 
  • Vous pouvez réduire le risque de partage des données en configurant l’application de manière à ne pas recycler les identificateurs de session.
  • Pour ce faire, affectez la valeur true à l’attribut regenerateExpiredSessionId de l’élément de configuration sessionState.
  • Ainsi, un nouvel ID de session est généré lorsqu’une demande de session sans cookie est effectuée avec un ID de session expiré.

Configuration de l’état de session :

  • L’état de session est configuré à l’aide de l’élément sessionState de la section de configuration system.web
  • Vous pouvez également configurer l’état de session à l’aide de la valeur EnableSessionState dans la directive @ Page.
  • L’élément sessionState vous permet de spécifier les options suivantes:
  • Le mode dans lequel la session stockera des données.
  • La façon dont les valeurs de l’identificateur de session sont envoyées entre le client et le serveur.
  • La valeur Timeout de la session.
  • La prise en charge des valeurs basées sur le paramètre de session Mode.

Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More