بازیابی مقادیر Session در ASP.Net

در این مقاله چگونگی بازیابی مقادیر session را در ASP.NET به شما آموزش می دهیم

اغلب از شی session برای ذخیره کردن اطلاعات متعلق به کاربر استفاده می کنیم. گاهی اوقات نیاز داریم تا متغیرهای session را ، برای مثال در صفحه  Page1.aspx یک مقداری را در session ذخیره می کنیم و درPage2.aspx مقدار دیگری را در session ذخیر می کنیم و در  Page3.aspx نیاز داریم که همه ی مقادیر را چاپ کنیم.

در ادامه خواهیم دید که چگونه تمام مقادیر session را به دست می آوریم.

Page1.aspx.cs

در این صفحه در session متغیر Id  را ذخیره می کنیم.

Session["Id"] = "1";

Page2.aspx.cs

در این صفحه متغیر دیگری در session ذخیره می کنیم. در این مثال متغیر (Name) را ذخیره کردیم 

Session["Name"] = "Manas Mohapatra"; 

Page3.aspx.cs

حال می خواهیم همه ی متغیر هایی که در صفحات قبل ذخیره شده اند، بازیابی نماییم. این کار را می توانیم به روش های زیر انجام دهیم:

روش اول:

در کد زیر، حلقه foreachای روی Session.Contents زده ایم که با آن تمام کلیدهای session را به دست آوریم. سپس با استفاده از این کلیدها، می توانیم مقادیر session را به دست بیاوریم.

protected void Page_Load(object sender, EventArgs e)    
{    
    foreach(string key in Session.Contents)     
    {    
        string value = "Key: " + key +", Value: " + Session[key].ToString();    
    
        Response.Write(value);    
    }    
}

روش دوم:

در کد زیر، ما از تعداد  کلیدهای موجود در session استفاده کرده و سپس با توجه به کلیدها مقادیر را به دست می آوریم.

protected void Page_Load(object sender, EventArgs e)    
{    
    for (int i = 0; i < Session.Count; i++)    
    {    
        string value = "Key: " + Session.Keys[i] + ", Value: " + Session[Session.Keys[i]].ToString();    
    
        Response.Write(value);    
    }    
} 

روش سوم:

در این روش مستقیما حلقه تکراری روی session می زنیم که کلیدها را برمی گرداند. با استفاده از این کلید به مقادیر دست پیدا می کنیم. 

protected void Page_Load(object sender, EventArgs e)    
{    
    foreach (string s in Session)    
    {    
        string value = "Key: " + s + ", Value: " + Session[s].ToString();    
    
        Response.Write(value);    
    }    
} 

شکل زیر را مشاهده کنید، که نام کلید و مقدار session را نمایش می دهد. روی Session.Contents حلقه تکراری زدیم که تمام کلیدها را در خود نگه می دارد و با استفاده از کلید، مقادیر session را به دست می آوریم.