50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

آموزش نحوه تعریف Session و Cookie برای کاربران در ASP.NET MVC

سلام خدمت تمامی دوستان و اساتید itpro ، در حال طراحی یک پرتال معمولی هستم . اولین سواله من در مورد ماهیت cookie و session هست، اینکه این دو چi تفاوت هایی با هم دارند و سوال دوم اینکه چطور من میتونم همزمان کi کاربر در داخل سایت ثبت نام میکنه، یک کوکی جداگونه براش ست کنم، و این کوکی یا session جایی باید ذخیره بشه؟ ممنون

پرسیده شده در 1395/05/08 توسط

3 پاسخ

2

سلام، در مورد تفاوت Cookie و Session:

  1. مفهوم Session: وقتی کاربری سایت شما رو باز میکنه براش یه Session ایجاد میشه، یعنی اگر وب سایت شما تو لحظه 20 تا بازدید کننده داشته باشه، 20 تا Session مختلف باز میشه که هر Session مربوط به یک کاربر هست، هر Session ایجاد شده یک شناسه منحصر به فرد داره که Session هارو از هم جدا میکنه. وقتی که برای کاربری Session جدیدی ایجاد شد میشه یکسری اطلاعات که مربوط به اون کاربر هست رو داخل Session ذخیره کرد که این اطلاعات در حافظه سرور نگهداری میشه و کلاینت ها دسترسی به این اطلاعات ندارن.
  2. مفهوم Cookie: در حقیقت Cookie ها یکسری فایل های متنی شامل اطلاعاتی در مورد شخصی هستن که در حال بازدید از وب سایت هست. و با هر ارسال یک درخواست از سمت بازدید کننده، این اطلاعات یعنی Cookie ها به سمت سرور ارسال میشن. برای مثال، گفتیم که هر Session ایجاد شده برای هر بازدیدکننده یک شناسه منحصر به فرد داره، بعد از ایجاد Session، شناسه مربوطه به صورت یک فایل Cookie بر روی مرورگر کاربر ذخیره شده و بوسیله این فایل Cookie مشخص میشه که شناسه Session مربوط به بازدید کننده کدام هست. اطلاعات دیگه ای هم در Session ها ذخیره میشن، برای مثال اطلاعات مربوط به هویت و دسترسی کاربر در وب سایت که به صورت رمز شده در یک فایل Cookie نگهداری میشن یا اطلاعاتی که به صورت در قالب کوکی ایجاد شده اند.

اما برای ایجاد و حذف کوکی به صورت زیر می تونی عمل کنی (مثال برای ASP.NET MVC هست):

public class CookieController : Controller
{

	public ActionResult Create()
	{
		HttpCookie cookie = new HttpCookie("Cookie");
		cookie.Value = "Hello Cookie! CreatedOn: " + DateTime.Now.ToShortTimeString();

		this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);
		return RedirectToAction("Index", "Home");
	}

	public ActionResult Remove()
	{
		if (this.ControllerContext.HttpContext.Request.Cookies.AllKeys.Contains("Cookie"))
		{
			HttpCookie cookie = this.ControllerContext.HttpContext.Request.Cookies["Cookie"];
			cookie.Expires = DateTime.Now.AddDays(-1);
			this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);
		}
		return RedirectToAction("Index", "Home");
	}

}
پاسخ در 1395/05/10 توسط
0

اون چیزی ک من متوجه شدم اینه که

با هر بار login شدن کاربر، با استفاده از این کدها یک فایل کوکی به نام "Cookie" برای کاربر ایجاد میشه و اطلاعات مربوط به Session کاربر مورد نظر رو، داخل این فایل ذخیره میکنه

حالا من میخوام بدونم که اگه ما n تا کاربر داشته باشیم، باید n تا کوکی ست کنیم؟ ب ازای هر کاربر یک نام جدا؟

یعنی اگه من الان ب ازای یک کاربر نام "Cookie" رو ست کردم برای کاربر بعدی وب سایتم باید مقدار "Cookie01" ست کنم؟

یا لازم نیست؟

امیدوارم مفهوم سوالمو رسونده باشم

ممنون

پاسخ در 1395/05/11 توسط
2

عملیات ورود یکبار نوشته میشه، شما برای هر کاربر زمانی که به سیستم وارد میشه یک Ticket ایجاد می کنی و در Cookie ذخیره می کنی، بر اساس این Ticket امکان اعتبار سنجی کاربر رو داری. سوالت مثل این هست که بگی باید برای هر کاربر که سفارش ثبت میکنه کد بنویسم؟؟ در صورتی که اینطور نیست. البته ایجاد کوکی به ازای هر کاربر جداگانه انجام میشه و در حقیقت به تعداد کاربرهایی که به سیستم وارد میشن کوکی ایجاد میشه، اما کد فقط یکبار نوشته میشه.

پاسخ در 1395/05/11 توسط

پاسخ شما