کار با کوکی ها در MVC 5
1 0

کار با کوکی ها در MVC 5


کار با کوکی ها Cookie در MVC 5

کوکی ها چیست؟

کوکی یک فایل متنی کوچک (حداکثر 4 کیلوبایتی) است که برای نگهداری اطلاعات در مورد کاربر از آن استفاده می شود.

کوکی ها توسط سرور ساخته شده و به مرورگر ارسال می شوند. سپس مرورگر آنها را ذخیره کرده و در مراجعات بعدی به سایت مورد نظر، آن را دوباره برای سرور ارسال می کند.

هر کوکی یک تاریخ انقضاء دارد که فقط تا آن تاریخ توسط مرورگر به سرور ارسال می شود.

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

می توان محدودیت های برای کوکی ها در نظر گرفت تا آنها فقط به بخش های خاصی از سایت (بر اساس آدرس) ارسال شوند.

هر چند کوکی ها در کامپیوتر کاربر ذخیره می شوند، ولی به تنهایی نمی توانند مشکل امنیتی ایجاد کنند. چرا که قابل اجرا نیستند و صرفا یک فایل متنی هستند.

هر چند کوکی ها نمی توانند اجرا شوند، ولی به سرقت رفتن (خوانده شدن) کوکی توسط افراد غیر مجاز می تواند امنیت اطلاعات را به خطر اندازد. به همین دلیل نباید برای ذخیره اطلاعات محرمانه از کوکی استفاده کرد.

ممکن است کوکی ها در مرورگر کاربر غیر فعال شده باشند، در این صورت به هیچ وج نمی توان یک کوی را برای مرورگر کاربر ارسال کرد و مرورگر نیز هیچ کوکی را برای سرور نمی فرستد.

نکته: با این روش نیز می توانید در Asp.Net  هم با کوکی ها کار کنید.

برای کار با کوکی ها به ابتدا یک کلاس به نام CookieHelper داخل پوشه Helpers ایجاد کنید و کدهای زیر به آن اضافه کنید.

کلاس فوق چهار متد AddCookie ، GetCookieValue ، UpdateCookie و RemoveCookie برای کار با کوی ها دارد.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Helpers
{
    public static class CookieHelper
    {
        public static void AddCookie(this HttpContextBase httpContextBase, string cookieName, string value)
        {
            httpContextBase.AddCookie(cookieName, value, DateTime.Now.AddDays(30));
        }

        public static void RemoveCookie(this HttpContextBase httpContextBase, string cookieName)
        {
            var cookie = new HttpCookie(cookieName)
            {
                Expires = DateTime.Now.AddDays(-1)
            };
            httpContextBase.Response.Cookies.Set(cookie);
        }

        public static void UpdateCookie(this HttpContextBase httpContextBase, string cookieName, string value,bool httpOnly=false)
        {
            var cookie = new HttpCookie(cookieName)
            {
                Value = httpContextBase.Server.UrlEncode(value),
                HttpOnly = httpOnly
            };
            httpContextBase.Response.Cookies.Set(cookie);
        }
        public static void AddCookie(this HttpContextBase httpContextBase, string cookieName, string value, DateTime expires,bool httpOnly=false)
        {
            var cookie = new HttpCookie(cookieName)
            {
                Expires = expires,
                Value = httpContextBase.Server.UrlEncode(value) ,// For Cookies and Unicode characters
                HttpOnly = httpOnly
            };
            httpContextBase.Response.Cookies.Add(cookie);
        }

        public static string GetCookieValue(this HttpContextBase httpContext, string cookieName)
        {
            var cookie = httpContext.Request.Cookies[cookieName];
            if (cookie == null)
                return string.Empty; //cookie doesn't exist

            // For Cookies and Unicode characters
            return httpContext.Server.UrlDecode(cookie.Value);
        }
    }
}

 

 

 

نحوه استفاده از متدهای AddCookie ، GetCookieValue ، UpdateCookie و RemoveCookie

 

متد AddCookie

این متد یک کوکی در مرورگر کاربر  ایجاد می کند.

HttpContext.AddCookie("post", "asp",DateTime.Now.AddDays(20));

متد فوق سه ورودی: نام کوکی ، مقدار و تاریخ انقضاء را دریافت می کند.

 

متد GetCookieValue

این متد مقدار کوکی را از مرورگر کاربر دریافت می کند

string cookieValue = HttpContext.GetCookieValue("post");

ابتدا یک متغیر از نوع رشته تعریف می کنیم و سپس با دادن نام کوکی به متد GetCookieValue مقدار آن را دریافت میکنم.

 

متد UpdateCookie

این متد کوکی ایجاده شده را بروز رسانی می کند.

HttpContext.UpdateCookie("post", "asp");

این متد دو ورودی یکی نام کوکی و دیگری مقدار جدید کوکی را دریافت می کند.

 

متد RemoveCookie

کار این متد حذف کوکی مورد نظر از مرورگر کاربر می باشد.

HttpContext.RemoveCookie("post");

کافیست نام کوکی را به این متد بدهید تا کوکی مورد نظر از مرورگر کاربر حذف شود.

دانلود

نویسنده حسین فتحی
گروه مطلب MVC
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۲۲ تیر ۱۳۹۵
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران مهمان
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha