Difference between revisions of "Setup Session for ASP.Net Web App"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Setting a Session Variable)
(Retrieving a Session Variable)
Line 31: Line 31:
  
 
==Retrieving a Session Variable==
 
==Retrieving a Session Variable==
 +
 +
 +
==Destroy a Session==
 +
 +
HttpContext.Session.Clear();

Revision as of 13:51, 19 October 2024

Setting up Session for ASP.Net Core Web App

Using the nuget package manager you need to install `Microsoft.AspNetCore.Session`. The version I have used is 2.2.0.

You can now add the following code to your `program.cs` file:

builder.Services.AddDistributedMemoryCache();

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

This code must be before the line `var app = builder.Build();` but after the line `var builder = WebApplication.CreateBuilder(args);`.

You now must add this:

app.UseSession();

It should go before your `app.Run()`.

Setting a Session Variable

The session can be accessed using `HtpContext`, but only in the methods called `OnGet()` or `OnPost()`. If you try to access session anywhere else it will be null. So remember `OnGet()` is run when the page is loaded and `OnPost()` is run when the page is submitted using a form.

     HttpContext.Session.SetString("_user", Request.Form["user"]);

Retrieving a Session Variable

Destroy a Session

HttpContext.Session.Clear();