세션은 사용자 데이터를 저장/저장할 수 있게 해주는 ASP.NET Core의 기능입니다.
세션은 서버의 사전에 데이터를 저장하고 SessionId는 키로 사용됩니다. SessionId는 쿠키의 클라이언트에 저장됩니다. SessionId 쿠키는 모든 요청과 함께 전송됩니다.
SessionId 쿠키는 브라우저별로 있으며 브라우저 간에 공유할 수 없습니다.
SessionId 쿠키에 대해 지정된 시간 초과가 없으며 브라우저 세션이 종료되면 삭제됩니다.
서버 측에서 세션은 제한된 시간 동안 유지됩니다. 서버의 기본 세션 시간 제한은 20분이지만 구성 가능합니다.
Microsoft.AspNetCore.Session 패키지는 ASP.NET Core에서 세션을 관리하기 위한 미들웨어를 제공합니다. 애플리케이션에서 세션을 사용하려면 이 패키지를 project.json 파일에 종속성으로 추가해야 합니다.
다음 단계는 Startup 클래스에서 세션을 구성하는 것입니다.
시작 클래스의 ConfigureServices 메소드에서 "AddSession" 메소드를 호출해야 합니다.
"AddSession" 메소드에는 Idle Timeout, Cookie Name 및 Cookie Domain 등과 같은 다양한 세션 옵션을 허용하는 하나의 오버로드 메소드가 있습니다.
세션 옵션을 통과하지 않으면 시스템은 기본 옵션을 사용합니다.
예시
public class Startup { public void Configure(IApplicationBuilder app){ app.UseSession(); app.UseMvc(); app.Run(context => { return context.Response.WriteAsync("Hello World!"); }); } public void ConfigureServices(IServiceCollection services){ services.AddMvc(); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(60); }); } }
세션에 액세스하는 방법
public class HomeController : Controller{ [Route("home/index")] public IActionResult Index(){ HttpContext.Session.SetString("product","laptop"); return View(); } [Route("home/GetSessionData")] public IActionResult GetSessionData(){ ViewBag.data = HttpContext.Session.GetString("product");; return View(); } }