Gestion de Sessions ASP.NET
ASP.NET Session Management
Dans cet article nous allons essayer de voir quelles sont les différentes façons dont nous pouvons gérer les sessions dans une application ASP.NET. Quand devrions-nous utiliser qui techniques et quels sont les avantages et les inconvénients de l'utilisation de chaque technique.
Dans cet article nous allons discuter spécifiquement les
Sessions.Session est la méthode côté serveur de gestion de l'état d'une application
ASP.NET.L'état de session des différentes applications Web sera stocké sur le côté serveur si nous utilisons cette technique. L'avantage d'avoir cette technique est que, puisque nous gardons toutes les informations liées à l'état sur le serveur, la demande et la réponse devient léger. En outre, les chances de quelqu'un d'intercepter ou de modifier ces données sont également réduits donc la sécurité c'est parmi les avantages fort de cette technique.
|
Asp.net session management |
Les avantages d'utiliser de l’état de Session sont:
- Une meilleure sécurité
- bande passante réduite
Les inconvénients de l'utilisation état de session sont:
- Plus de consommation des ressources du serveur.
- Code supplémentaire
L'état de session ASP.NET prend en charge plusieurs mode pour le stockage des données de session. Chaque option est identifiée par une valeur dans l'énumération
SessionStateMode. La liste suivante décrit les modes d'état de session disponibles:
- InProc, qui stocke l'état de session dans la mémoire sur le serveur Web. Ce est la valeur par défaut.
- StateServer, qui stocke l'état de session dans un processus distinct appelé le service d'état ASP.NET. Cela garantit que l'état de session est préservée si l'application Web est redémarré et rend également la session à la disposition de plusieurs serveurs Web.
- SQLServer stocke l'état de session dans une base de données SQL Server. Cela garantit que l'état de session est préservée si l'application Web est redémarré et fait également état de session à la disposition de plusieurs serveurs Web.
- Custom, qui vous permet de spécifier un fournisseur de stockage personnalisé.
Utilisation des Sessions
Utilisation de l'état de session
ASP.NET nous permet de stocker des valeurs en utilisant l'état de session. Ce est un mécanisme de stockage global qui est accessible à partir de toutes les pages de l'application Web. L'état de session est stocké dans le dictionnaire clé/ valeur. Cette information sera-à-dire spécifiques à l'utilisateur pour chaque dictionnaire utilisateur séparé sera créé et personne ne peut accéder à d'autres informations de session. ci-dessous est l'utilisation de l'exemple de session
//global.asax
void Session_Start(object sender, EventArgs e)
{
// Code à excuter lorsque une nouvelle session démarre
Session["Utilisateur"] = "";
}
// Web forms
Session["Utilisateur"] = "Hicham';
LblUtilisateur.Text = Session["Utilisateur"].ToString();
Configuration mode de Session
Mode In-Proc :
Pour configurer la gestion de session in-process nous devons spécifier l'élément sessionState dans le fichier web.config. voyons comment configurer le mode In-Proc
<sessionState mode="InProc"
cookieless="false"
timeout="100"/>
Mode SQL Server
<sessionState mode="SQLServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="Data Source=.\SQLEXPRESS;Trusted_Connection=Yes;"
cookieless="false"
timeout="100"/>
Mode State Server
En utilisant ce mode assure que l'état de session est préservée si l'application Web est redémarré et rend l'état de session à la disposition de plusieurs serveurs Web.
Pour utiliser le mode StateServer, vous devez d'abord être sûr que le service d'état ASP.NET se exécute sur le serveur utilisé pour le stockage de session. Le service d'état ASP.NET est installé comme un service lorsque ASP.NET et le .NET Framework sont installés. Le service d'état ASP.Net est installé à l'emplacement suivant:
systemroot \ Microsoft.NET \ Framework \ versionNumber \ aspnet_state.exe
Pour configurer une application ASP.NET pour utiliser le mode StateServer, dans le fichier web.config de l'application, procédez comme suit:
<sessionState mode="StateServer"
stateConnectionString="tcpip=ServerName:42424"
cookieless="false"
timeout="20"/>
Mode Custom
Mode Custom spécifie que vous souhaitez stocker des données d'état de session en utilisant un fournisseur de stockage de l'état de session personnalisé. Lorsque vous configurez votre application ASP.NET avec un mode
Custom , vous devez spécifier le type de fournisseur de stockage de l'état de session en utilisant
Providers qui est un sous-élément de l'élément
sessionState .
L'exemple suivant montre des éléments d'un fichier
Web.config qui précisent que l'état de session ASP.NET utilise un mode Custom pour le stockage de l'état de session:
<sessionState
mode="Custom"
customProvider="OdbcSessionProvider">
<providers>
<add name="OdbcSessionProvider"
type="Samples.AspNet.Session.OdbcSessionStateStore"
connectionStringName="OdbcSessionServices"
writeExceptionsToEventLog="false" />
</providers>
</sessionState>