ایجاد Session Variable در ASP.Net5

جمعه 23 مرداد 1394

در این مقاله، با session variableها و نحوه ایجاد و مدیریت آنها آشنا می شویم.

ایجاد Session Variable در ASP.Net5

ASP.Net Session، این امکان را به ما می دهد که زمانی که کاربر به یک صفحه ASP.Net هدایت می شود، مقادیر و داده ها را  ذخیره و بازیابی کنیم. مقادیر Session ها برای مدتی که بازدیدکننده در سایت شما حضور دارد، ذخیره می شود. این sessionها اغلب اوقات در حافظه سرور ذخیره می شوند. البته می توانید Session را طوری تنظیم کنید که در State Server یا SQL Server  ذخیره شود. در ASP.Net MVC، می توانیم با استفاده از HttpContext.Current.Session متغیرهای session ساخته و به آنها دسترسی داشته باشیم. در ASP.Net 5، تیم ASP یک middleware (میان افزار) پیاده سازی کرده اند تا مدیریت Session ها را پشتیبانی کند.

چگونه از ASP.Net 5 Session middleware استفاده کنیم:

1. در ابتدا آدرس ارجاع *-1.0.0:Microsoft.AspNet.Session را به فایل Project.json اضافه می کنیم(Include).

2. در فایل Startup.cs، میان افزار اضافه کردن session را به متد ()ConfigureServices اضافه می کنیم.

public void ConfigureServices(IServiceCollection services)
{
    services.AddCaching();
    services.AddSession();
    services.AddMvc();
}

3. همچنین در متد ()Configuere، نیز باید Extension Methodای به نام ()UseSession را اضافه کنیم.

public void Configure(IApplicationBuilder app)
{
    app.UseSession(configure: s => s.IdleTimeout = System.TimeSpan.FromMinutes(30));
    app.UseErrorPage();
    app.UseStaticFiles();
    app.UseMvc(routes =>
    {
        routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}");
    });
}

4. سپس می توانید، session را با استفاده از شی ء context مدیریت کنید.

//Setting the session values
Context.Session.SetString("Name","Anuraj");
Context.Session.SetString("Address", "www.dotnetthoughts.net");
//Getting the session values
Name = Context.Session.GetString("Name"),
Address = Context.Session.GetString("Address")

سه متد Set،SetInt و SetString برای گرفتن مقادیر session وجود دارد که یک byte array به عنوان آرگومان می گیرند. همچنین سه متد Get، GetInt و GetString برای برگرداندن مقادیر sessionها داریم که یک byte array به عنوان کلید برمی گردانند. اگر می خواهید انواع داده ای دلخواه را در session ذخیره کنید، می توانید از متدهای set/get استفاده کنید و باید منطق Serialization و de-serialization را پیاده سازی نمایید.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید