session در asp.net چیست و چه کاربردی دارد

ارسال شده توسط: حسین درویشی Comments: 5

session در asp.net چیست و چه کاربردی دارد

خوب بار دیگر قسمتی شد تا با یک آموزش دیگر در خدمت شما باشیم امروز می خواهم نحوه استفاده از session را در asp.net برایتان توضیح دهم لطفاً در ادامه با ما باشید

اشیا session

شیء Session، عضوی از کلاس System.Web.SessionState.HttpSessionState می باشد. این شیء داده های یک کاربر را بصورت موقت نگهداری می کند و در طول کاوش کاربر بین صفحات، این داده به اشتراک گذاشته می شوند. Session برای نگهداری داده های کاربر از Name و Value استفاده می کند.

session در زبان php هم قابل پیاده سازی است اما مثال ما در این آموزش در زبان C#.net می باشد

نحوه استفاده از session

در دستور زیر مقدار ali را در متغییر UserName قرار دادیم سپس مقدار متغییر UserName را در Session با نام username قرار دادیم به عبارتی دیگر ali در session با نام username قرار گرفته است.

یا اگر بخواهم بشکل ساده توضیح دهم می توانم بگویم که مقدار متغیر UserName در مقدار Session با نام username قرار گرفته است.

 string UserName = "ali";
Session["username"] = UserName;

چه زمانی از session استفاده کنیم؟

حال ممکن است از خودتان سوال بپرسید که اصلاً session به چه دردی می خورد. که چی ali در session قرار گرفته است. اگر بخواهیم به زبان ساده session را توصیف کنیم می توانیم آن را با کوکی مقایسه کنیم. همچنین از session برای نگهداری زمان ورود کاربر، کارت خرید و … مورد استفاده قرار می گیرد.

از session می توانید در فرم لاگین استفاده کنید به چه شکل؟

ببینید وقتی که یک کاربر در سایت شما می خواهد لاگین کند در صورتی که اطلاعات خود را بدرستی وارد کند در نهایت به یک صفحه وبی منتقل خواهد شد اما مسئاله اینجاست صفحه ای که کاربر هدایت شده می تواند دفعه ی بعد با شناسایی اسم صفحه بدون اینکه لاگین کند مستقیماً اسم صفحه را در مرورگر وارد کرده و به صفحه مورد نظر دسترسی پیدا کند.

می توانیم از session در این مورد استفاده کنیم.

نحوه استفاده از session در فرم لاگین

موقعی که کاربر لاگین می کند اگر نام کاربری و کلمه عبور خود را بدرستی وارد کند به صفحه مورد نظر خود دسترسی پیدا خواهد کرد این زمانی است که همه اطلاعات وارده بدرستی وارد شده است پس می توانیم نام کاربری کاربر را در یک session ذخیره کنیم و در همه صفحات بررسی کنیم که session مورد نیاز خالی نیست.

مزایای session

  • session امن است
  • session می تواند تمام مقادیر را در خود ذخیره کند
  • session در طرف server است
  • session با بسته شده مرورگر از بین می رود
  • و…

معایب session

  • چون که session در سرور ذخیره می شود اگر تعداد کاربران زیاد باشد سرور باید بار حجم زیادی را متحمل باشد.

تفاوت session با کوکی

گفتیم session در طرف سرور نگهداری می شود اما کوکی در طرف کلاینت استفاده از کوکی برای سرور مانعی ندارد.

فرم لاگین در C#.net با استفاده از session

ساخت فرم لاگین به کمک session

یک پروژه از نوع وب اپلیکیشن بسازید و برای آن دو صفحه به نام های Login و Default ایجاد کنید

فرم لاگین را مانند شکل زیر بسازید

می توانید برای زیبایی بیشتر از css استفاده کنید کد مربوط به فرم لاگین

<body>
<form id="form1" runat="server">
نام کاربری:
<asp:TextBox runat="server" ID="txtusername"  />
<br />
کلمه عبور:
<asp:TextBox runat="server" ID="txtpassword" />
<br />
<asp:Button Text="ورود" runat="server" />
</form>
</body>

حال در ادامه دستورا طرف سروری را می خواهیم بنویسیم

در رویداد onclick دکمه دستورات زیر را قرار دهید

  if(txtusername.Text=="Ava" && txtpassword.Text=="source")
{
Session["username"] = txtusername.Text;
Response.Redirect("Default.aspx");
}
else
{
Response.Write("نام کاربری یا کلمه عبور اشتباه است");
}

حال به صفحه Default.aspx برگردید و در PageLoad آن دستور زیر را قرار دهید

protected void Page_Load(object sender, EventArgs e)
{
if(Session["username"]==null)
{
Response.Redirect("Login.aspx");
}
}

اگر سوالی در مورد این آموزش داشتید می توانید در قسمت نظرات اعلام کنید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

Comments (5)

  • باران پاسخ

    سلام ، من سایتی با زبان vb.net نوشتم
    چرا سشن قبل از تمام شدن زمان تعیین شدن تو webconfig پاک میشه؟
    بعضی اوقات هم روی لینکی تو سایت کلیک میکنم میپره رو لاگین ، این اتفاق هر دفه برای یکی از لینک های سایت می افته، علت چیه؟

    7 شهریور 1400 at 10:01 ق.ظ
  • میلاد پاسخ

    سلام می خواستم بدونم اگر بخواهیم که اطلاعات از بانک اطلاعاتی دریافت کنیم باید چجور بنویسیم
    منظورم اینه نام کاربری و پسورد را از بانک بگیرد
    ؟؟؟ مرسی ممنون

    12 تیر 1400 at 1:52 ق.ظ
    • محمد حسنوند پاسخ

      با Ado یا Dapper یا ef وصل میشی ب بانک و کوئری های خودت رو میزنی الان نمیشه کامل تو این کامنت بگم سعی کن ef core رو یاد بگیری

      9 آبان 1400 at 3:16 ب.ظ
  • مجید پاسخ

    سلام . وقت بخیر خوب هستین
    if (txt_username.Text == “” && txt_password.Text == “”)
    {
    Session[“username”] = txt_username.Text;
    Response.Redirect(“Chat.aspx”);
    }
    else
    {
    lbl_login.Text = “نام کاربری یا کلمه عبور اشتباه است”;
    }
    ……………………………………
    کاربران ثبت نام میکنن .. با هون نام کاربری و رمز عبور ثبت کردن >> وارد صفحه بعدی بشود
    نام کاربری خودش وارد کنه
    رمز خودش بزنه
    if (txt_username.Text == “” && txt_password.Text == “”)
    لطفا کمک کنید

    10 دی 1398 at 9:34 ب.ظ
    • حسین درویشی پاسخ

      سلام من اصلاً متوجه سوالتون نشدم

      10 دی 1398 at 10:47 ب.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *