Utiliser la session dans un projet asp.net core–Découvrons asp.net core avec C#

Première surprise, vous venez d’un projet mvc.net Framework, et vous souhaitez accéder à votre Session, depuis votre Controller : le propriété n’est plus là !

image

Voyons ensemble comment mettre en place et utiliser la Session côté asp.net core.

Configurer l’appel de la Session avec un middleware, dans le fichier Startup.cs

Ici, deux étapes vont nous permettre de configurer le middleware permettant l’utilisation de la Session.

1. Configuration

Dans la mĂ©thode Configure, ajouter app.UseSession();  comme middleware.

TRES IMPORTANT : mettez bien cet appel avant le UseMvc, pour respecter l’ordonnancement des middlewares.

2. Extension des Services

Du côté configuration des services, vous devez ajouter deux lignes pour préparer l’utilisation des Sessions :

services.AddDistributedMemoryCache();
services.AddSession(options =>
{
    options.Cookie.HttpOnly = true;
    options.IdleTimeout = TimeSpan.FromSeconds(10);
});

Utilisation de la Session dans un Controller

Ici, encore, c’est déroutant (enfin presque) : nous n’avons plus notre this.Session dans l’action de notre Controller.

Or, (pour celles et ceux qui viennent de asp.net côté Framework), il existe une seconde façon d’appeler la Session : grâce au HttpContext.

Tip : ajouter le using de Microsoft.AspNetCore.Http; en haut du fichier de votre Controller, vous pourrez profiter des méthodes plus sympa pour renseigner une valeur dans la Session.

1. Affectation de valeurs

Pour attribuer une valeur, vous devez avoir une clef (qui sera unique dans le dictionnaire de la Session), puis appeler le SetString ou SetInt32

image

Ce qui donne par exemple :

this.HttpContext.Session.SetString(« Ticks », DateTime.Now.Ticks.ToString());

2. Lecture de valeurs

Pour lire une valeur, vous devez renseigner la clef souhaitée (qui doit être présente dans le dictionnaire de la Session) :

string maValeur = this.HttpContext.Session.GetString(« Ticks »);

Notre adresse

1 rue du guesclin
44000 Nantes

Notre téléphone

+33 2 79 65 52 87

Société

DevToBeCurious SARL
84860163900018 - Nantes B 848 601 639