Difference between revisions of "Setup Session for ASP.Net Web App"
(→Setting up Session for ASP.Net Core Web App) |
(→Setting a Session Variable) |
||
Line 24: | Line 24: | ||
==Setting a Session Variable== | ==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. | ||
+ | |||
+ | <syntaxhighlight lang=c#> | ||
+ | HttpContext.Session.SetString("_user", Request.Form["user"]); | ||
+ | </syntaxhighlight> | ||
==Retrieving a Session Variable== | ==Retrieving a Session Variable== |
Revision as of 13:50, 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"]);