सत्र ASP.NET कोर में एक विशेषता है जो हमें उपयोगकर्ता डेटा को सहेजने/संग्रहीत करने में सक्षम बनाता है।
सत्र सर्वर पर शब्दकोश में डेटा संग्रहीत करता है और सत्र आईडी को कुंजी के रूप में उपयोग किया जाता है। सत्र आईडी क्लाइंट पर कुकी पर संग्रहीत होता है। सत्र आईडी कुकी हर अनुरोध के साथ भेजी जाती है।
सत्र आईडी कुकी प्रति ब्राउज़र है और इसे ब्राउज़र के बीच साझा नहीं किया जा सकता है।
सत्र आईडी कुकी के लिए कोई टाइमआउट निर्दिष्ट नहीं है और ब्राउज़र सत्र समाप्त होने पर उन्हें हटा दिया जाता है।
सर्वर के अंत में, सत्र को सीमित समय के लिए रखा जाता है। सर्वर पर डिफ़ॉल्ट सत्र समयबाह्य 20 मिनट है लेकिन यह विन्यास योग्य है।
Microsoft.AspNetCore.Session पैकेज ASP.NET कोर में सत्रों का प्रबंधन करने के लिए मिडलवेयर प्रदान करता है। हमारे एप्लिकेशन में सत्र का उपयोग करने के लिए, हमें इस पैकेज को project.json फ़ाइल में निर्भरता के रूप में जोड़ना होगा।
अगला चरण स्टार्टअप वर्ग में सत्र को कॉन्फ़िगर करना है।
हमें स्टार्टअप वर्ग की ConfigureServices विधि में "AddSession" विधि को कॉल करने की आवश्यकता है।
"AddSession" विधि में एक अधिभार विधि है, जो विभिन्न सत्र विकल्पों जैसे निष्क्रिय समयबाह्य, कुकी नाम और कुकी डोमेन आदि को स्वीकार करती है।
यदि हम सत्र विकल्प पास नहीं करते हैं, तो सिस्टम डिफ़ॉल्ट विकल्प लेगा
उदाहरण
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(); } }