Skip to main content

Session Http

On peut stocker des données dans la session HTTP. Pour cela il faut d'abord la convigurer en rajoutant dans le Program.cs (après la ligne var builder = WebApplication.CreateBuilder(args);) :

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

Et après app.UseAuthorization(); :

app.UseSession();

Pour enregistrer des données dans la session :

HttpContext.Session.SetString("key", "value");

Pour récupérer des données de la session :

string value = HttpContext.Session.GetString("key");

Dockeriser une application ASP .NET Core

D'abord on build un exécutable de notre application :

dotnet publish -c Release

On crée ensuite le Dockerfile suivante à la racine du projet

# On part d'une image microsoft pour ASP .NET Core
FROM mcr.microsoft.com/dotnet/aspnet:6.0

# On copie notre résultat de publication dans le conteneur
COPY bin/Release/net6.0/publish/ App/

# On se place là où on a copié
WORKDIR /App

# On expose le port 80
EXPOSE 80

# On lance l'application
ENTRYPOINT ["dotnet", "net-web-tuto.dll"]

On peut ensuite build l'image :

docker build -t mon-image -f Dockerfile . 

Et enfin lancer l'image :

Attention, si votre base de donnée est aussi un conteneur Docker tournant sur votre machine, dans l'hote de la base de donnée, notez non pas "localhost" mais l'adresse locale de votre machine pour permettre à la connexion de loopback entre vos conteneurs.

docker run -p 80:80 -e DATABASE_HOST=<IP de votre base de donnée> -e DATABASE_NAME=testdb -e DATABASE_USERNAME=root -e DATABASE_PASSWORD=monMdpTresSecret -t mon-image

Sources

Pour aller plus loin

Si vous voulez aller plus loin, je vous conseille de vous intéresser aux sujet suivants :

  • API ReST avec ASP .NET Core WebAPI
  • Architectures Logicielles Backend :
    • N-Tiers
    • Clean Architecture

Des tutos sur ces sujets apparaitront peut être sur ce site à l'avenir !