সেশন (Session) হলো একটি টেম্পোরারি ডেটা স্টোরেজ যা ব্যবহারকারীর ব্রাউজার এবং সার্ভারের মধ্যে তথ্য সংরক্ষণ করতে ব্যবহৃত হয়। এটি সাধারণত ব্যবহারকারীর নির্দিষ্ট সেশন এর মধ্যে থাকা ডেটা সংরক্ষণ এবং অ্যাক্সেস করার জন্য ব্যবহৃত হয়, যেমন লগইন তথ্য, ব্যবহারকারীর পছন্দসমূহ বা অন্য কোনো ব্যক্তিগত তথ্য। সেশন ব্যবহারকারীকে বিভিন্ন পেজের মধ্যে ডেটা শেয়ার করার সুবিধা দেয়, যেহেতু HTTP একটি স্টেটলেস প্রোটোকল, অর্থাৎ প্রতিটি রিকোয়েস্টের পরিমাণ একে অপরের থেকে আলাদা।
ASP.Net এ সেশন হ্যান্ডল করার জন্য Session State ব্যবহৃত হয়। এটি একধরনের ইন-মেমরি স্টোরেজ যেখানে ব্যবহারকারীের ডেটা রাখা হয় এবং সার্ভারের মধ্যে সংরক্ষিত থাকে যতক্ষণ না পর্যন্ত ব্যবহারকারীর ব্রাউজার বন্ধ হয় বা সেশন এক্সপায়ার হয়।
ASP.Net এ সেশন পরিচালনার জন্য সার্ভার একটি ইউনিক সেশন আইডি তৈরি করে, যেটি ব্যবহারকারীর ব্রাউজারে একটি cookie হিসেবে সংরক্ষিত হয়। এই সেশন আইডি ব্যবহার করে সার্ভার প্রতিটি রিকোয়েস্টের সাথে সেশন ডেটা সম্পর্কিত তথ্য খুঁজে পায় এবং সে অনুযায়ী রেসপন্স দেয়।
আপনি সেশন ডেটা সংরক্ষণ করতে পারেন Session অবজেক্ট ব্যবহার করে।
public IActionResult Login(string username, string password)
{
// সঠিক লগইন যাচাই করা
if (username == "admin" && password == "password")
{
// সেশন ডেটা সেট করা
Session["User"] = username;
return RedirectToAction("Dashboard");
}
else
{
return View();
}
}
সেশন থেকে ডেটা রিট্রিভ করতে, আপনি সেশন অবজেক্টের মাধ্যমে সেভ করা ডেটা অ্যাক্সেস করতে পারেন।
public IActionResult Dashboard()
{
// সেশন থেকে ব্যবহারকারীর নাম রিটার্ন করা
var username = Session["User"] as string;
if (username != null)
{
ViewBag.Message = "Welcome, " + username;
return View();
}
else
{
return RedirectToAction("Login");
}
}
সেশন ডেটা মুছতে Session.Remove() অথবা Session.Abandon() ব্যবহার করা যেতে পারে।
public IActionResult Logout()
{
// সেশন ভেরিয়েবল মুছে ফেলা
Session.Remove("User");
return RedirectToAction("Login");
}
সেশন টাইমআউট: সেশন ডেটা স্বয়ংক্রিয়ভাবে কিছু সময় পর মুছে যায়। আপনি web.config ফাইলে সেশন টাইমআউট কনফিগার করতে পারেন।
উদাহরণ:
<configuration>
<system.web>
<sessionState timeout="30" /> <!-- সেশন 30 মিনিট পর এক্সপায়ার হবে -->
</system.web>
</configuration>
ASP.Net সেশন ব্যবস্থাপনা একটি শক্তিশালী উপায় যা ব্যবহারকারীর ডেটা সার্ভারের মধ্যে সংরক্ষণ করে এবং প্রতিটি HTTP রিকোয়েস্টের সাথে সেই ডেটা অ্যাক্সেস করার সুবিধা দেয়। সেশন ব্যবহারের মাধ্যমে ব্যবহারকারীর ইনফরমেশন একাধিক পেজে বা রিকোয়েস্টে শেয়ার করা যায়। তবে, সেশন ব্যবহারের সময় নিরাপত্তা এবং পারফরমেন্সের বিষয়গুলো খেয়াল রাখতে হয়।
Read more