เซสชันเป็นคุณลักษณะใน ASP.NET Core ที่ช่วยให้เราสามารถบันทึก/จัดเก็บข้อมูลผู้ใช้ได้
เซสชั่นจัดเก็บข้อมูลในพจนานุกรมบนเซิร์ฟเวอร์และใช้ SessionId เป็นคีย์ SessionId ถูกเก็บไว้ในไคลเอนต์ที่คุกกี้ คุกกี้ SessionId จะถูกส่งไปพร้อมกับทุกคำขอ
คุกกี้ SessionId เป็นคุกกี้ต่อเบราว์เซอร์และไม่สามารถแชร์ระหว่างเบราว์เซอร์ได้
ไม่มีการระบุระยะหมดเวลาสำหรับคุกกี้ SessionId และจะถูกลบออกเมื่อเซสชันเบราว์เซอร์สิ้นสุดลง
เมื่อสิ้นสุดเซิร์ฟเวอร์ เซสชันจะถูกเก็บไว้เป็นเวลาจำกัด ระยะหมดเวลาของเซสชันเริ่มต้นที่เซิร์ฟเวอร์คือ 20 นาที แต่สามารถกำหนดค่าได้
Microsoft.AspNetCore.Session แพ็คเกจให้มิดเดิลแวร์เพื่อจัดการเซสชันใน ASP.NET Core ในการใช้เซสชันในแอปพลิเคชันของเรา เราจำเป็นต้องเพิ่มแพ็คเกจนี้เป็นการพึ่งพาในไฟล์ project.json
ขั้นตอนต่อไปคือการกำหนดค่าเซสชันในคลาสเริ่มต้น
เราจำเป็นต้องเรียกเมธอด "AddSession" ในเมธอด ConfigureServices ของคลาสเริ่มต้น
วิธี "AddSession" มีวิธีโอเวอร์โหลดหนึ่งวิธี ซึ่งยอมรับตัวเลือกเซสชันต่างๆ เช่น หมดเวลาใช้งาน ชื่อคุกกี้ และโดเมนคุกกี้ เป็นต้น
หากเราไม่ผ่านตัวเลือกเซสชัน ระบบจะใช้ตัวเลือกเริ่มต้น
ตัวอย่าง
<ก่อน> การเริ่มต้นคลาสสาธารณะ { กำหนดค่าโมฆะสาธารณะ (แอป IApplicationBuilder) { app.UseSession (); แอพ UseMvc(); app.Run (บริบท => { return context.Response.WriteAsync ("สวัสดีชาวโลก!"); }); } โมฆะสาธารณะ ConfigureServices (บริการ IServiceCollection) { services.AddMvc (); services.AddSession (ตัวเลือก => { options.IdleTimeout =TimeSpan.FromMinutes (60); }); }}วิธีเข้าถึงเซสชัน
HomeController คลาสสาธารณะ:คอนโทรลเลอร์{ [เส้นทาง("home/index")] IActionResult Index() สาธารณะ (){ HttpContext.Session.SetString("product","laptop"); กลับดู (); } [เส้นทาง ("home/GetSessionData")] IActionResult GetSessionData () สาธารณะ () { ViewBag.data =HttpContext.Session.GetString ("ผลิตภัณฑ์");; กลับดู (); }}