সেশন হল ASP.NET কোরের একটি বৈশিষ্ট্য যা আমাদের ব্যবহারকারীর ডেটা সংরক্ষণ/সঞ্চয় করতে সক্ষম করে।
সেশন সার্ভারে অভিধানে ডেটা সঞ্চয় করে এবং সেশনআইডি একটি কী হিসাবে ব্যবহৃত হয়। সেশনআইডি কুকিতে ক্লায়েন্টে সংরক্ষণ করা হয়। সেশনআইডি কুকি প্রতিটি অনুরোধের সাথে পাঠানো হয়।
সেশনআইডি কুকি ব্রাউজার প্রতি এবং এটি ব্রাউজারগুলির মধ্যে ভাগ করা যায় না৷
৷SessionId কুকির জন্য কোন সময়সীমা নির্দিষ্ট করা নেই এবং ব্রাউজার সেশন শেষ হলে সেগুলি মুছে ফেলা হয়।
সার্ভারের শেষে, সেশন একটি সীমিত সময়ের জন্য ধরে রাখা হয়। সার্ভারে ডিফল্ট সেশনের সময়সীমা 20 মিনিট তবে এটি কনফিগারযোগ্য৷
Microsoft.AspNetCore.Session প্যাকেজ ASP.NET কোরে সেশন পরিচালনা করতে মিডলওয়্যার সরবরাহ করে। আমাদের অ্যাপ্লিকেশনে সেশন ব্যবহার করার জন্য, আমাদের এই প্যাকেজটিকে project.json ফাইলে নির্ভরতা হিসেবে যুক্ত করতে হবে।
পরবর্তী ধাপ হল স্টার্টআপ ক্লাসে সেশন কনফিগার করা।
আমাদের স্টার্টআপ ক্লাসের কনফিগার সার্ভিসেস পদ্ধতিতে "অ্যাডসেশন" পদ্ধতিতে কল করতে হবে।
"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(); } }