شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > ASP و ASP.NET
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
مشرف قسم asp.net
#1  
درس عن ال Cookies

السلام عليكم

الكوكيز عبارة عن ملفات صغيرة من المعلومات يقوم السيرفر بتخزينها على جهاز المستخدم ( العميل )

الكوكيز بعضها يكون مؤقت وبعضها يكون دائم ...الكوكيز المؤقته تسمى session cookies موجودة
فقط في ذاكرة الخادم ( السيرفر )

الكوكيز الدائمة يعني بعبارة أخرى ...تبقى حية شهور أو سنوات...المتصفح الذي يدعم الكوكيز يحتفظ بملف أو أكثر وهذه الملفات تسمى cookies files في نظام التشغيل ويندوز وتسمى magic cookies في نظام التشغيل ماكنتوش وهي تحفظ بيانات من مواقع الويب

• عند استخدام الكوكيز يجب جلب فضاء الأسماء System.Net


• معظم الأوقات الكوكيز تستخدم لتخزين أسماء المستخدمين وكلمات المرور وآخر صفحة قام المستخدم بزيارتها وليس من الخطأ أن يتم حفظ اسم المستخدم ولكن غير المفضل الاحتفاظ بكلمة المرور لأنه يمكن لللمخترقين فكها

• يتم استرجاع الكوكيز من ال request object وكتابة قيمة الكوكيز باستخدام ال response object

• لتكوين session cookies يعني كوكيز مؤقته بالطريقة التالية :
فيجوال بيسك:

كود:
Dim  objCookie  as  New  HttpCookie(“myCookie”)
objCookie(“myCookie”)= “English”
Response.Cookies.Add(objCookies)
سي شارب :

كود:
HttpCookie    cookie=new  HttpCookie(“myCookie”);
objCookie[“myCookie”]= “English”;
Response.Cookies.Add(objCookies);
أول جملة هي انشاء كوكيز باسم myCookie ويحمل قيمة English
والجملة الثانية اضافة الكوكيز الى ال Response object



لقراءة قيمة كوكيز معين من خلال الجملة التالية :
فيجوال بيسك :
كود:
Dim  objCookie  as  HttpCookie=Request.Cookies(“myCookie”)
سي شارب :
كود:
HttpCookie    cookie= Request.Cookies[“myCookie”];

دائما الكوكيز تحتوي على قيمة string واذا أردت أن تخزن قيمة من نوع آخر يجب تحويل القيمة

ولعرض جميع الكوكيز الموجودة من خلال الكود التالي

فيجوال بيسك دوت نت:
كود:
Dim strKey As String
For each strKey in Request.Cookies
  Response.Write( "<li>" & strKey & "=" & Request.Cookies( strKey ).Value )
Next
سي شارب :
كود:
Foreach( String strKey in Request.Cookies)
{
  Response.Write( "<li>" + strKey + "=" + Request.Cookies( strKey ).Value );
}
والأن سأعطي مثال على انشاء session Cookies ( كوكيز مؤقتة )

1- انشاء صفحة جديدة واضافة الكونترول التالية كما هو موضح في الصور


2- النقر نقرة مزدوجة بالماوس على الزر وكتابة الكود التالي
فيجوال بيسك دوت نت :
كود:
Dim objCookie As HttpCookie
objCookie = New HttpCookie(txtCookieName.Text, txtCookieValue.Text)
Response.Cookies.Add(objCookie)
بلغة السي شارب :
كود:
HttpCookie objCookie = New HttpCookie(txtCookieName.Text, txtCookieValue.Text);
Response.Cookies.Add(objCookie);
والكود التالي معناه تعريف كائن من الكلاس HttpCookie
اسمه هو قيمة التيكست الأول وقيمته هو قيمة التكست الثاني
وبعد ذلك سيتم اضافة الكوكيز الذي تم انشاءه الى ال Response object

3- وفي نفس صفحة الكود يتم اختيار دالة ال Page_PreRender كما في الشكل التالي


وهذه الدالة يتم تنفيذها بعد رجوع الصفحة من السيرفر
ويتم كتابة الكود التالي
فيجوال بيسك دوت نت :
كود:
Dim strKey As String
For Each strKey In Request.Cookies
lblCookies.Text &= "<li>" & strKey & "=" & Request.Cookies(strKey).Value
Next
سي شارب :
كود:
foreach( String strKey In Request.Cookies)
{
lblCookies.Text += "<li>" + strKey + "=" + Request.Cookies(strKey).Value;
}
هذا الكود معناه عرض جميع الكوكيز الموجودة
ويتم التنفيذ وستكون النتيجة كالأتي


واذا تم اضافة كوكيز جديدة يتم عرضها أيضا في اسفل الصفحة

والكوكيز الدائمة يتم تعريفها بنفس الطريقة التي يتم فيها تعريف الكوكيز المؤقتة ولكن باضافة تاريخ بقاء الكوكيز وعندما المتصفح يطلب صفحة تحتوي على كوكيز دائمة يقوم بحفظها في القرص الصلب

فيجوال بيسك دوت نت :
كود:
Dim objCookie As New HttpCookie( "myPersistentCookie", "Hello!" )
objCookie.Expires = #12/25/2005#
Response.Cookies.Add( objCookie )
سي شارب :
كود:
HttpCookie objCookie = New HttpCookie( "myPersistentCookie", "Hello!”);
objCookie.Expires = #12/25/2005#;
Response.Cookies.Add( objCookie );

وهناك بعض الحدودية في الكوكيز وهي :

1- حجم ملف الكوكي محدود فهو لا يكون أكثر من KB 4 يعني لا تحاول أن تخزن بطاقات الشراء الكبيرة جدا جدا الخاصة بالمستخدم مباشرة في الكوكيز .
2- أنت لا تستطيع أن تخزن أي شيء في الكوكي ولكن يتم تخزين فقط ال string وهذا معناه أنه لا يمكن تخزين كائنات معقدة في الكوكي مثل ال HashTables وال DataSets


هنالك أيضا السيشن الموجود على ذاكرة الخادم ومدته الافتراضية 20 دقيقة ويمكن تعريفه بسهولة كالتالي

VB.NET
session("name")="Value"


C#
Session["Name"]="Value";

وعند الاسترجاع نعكس اليمن شمال والشمال يمن




أختكم إيناس

شكرا جزيلا يا أستاذي الفاضل






__________________
مطور مواقع ASP.NET & تطبيقات Windows 8 & تطبيقات جوال WP7
بريدي :khalilme at hotmail.com

آخر تعديل بواسطة خليل سليم في 28-09-2007 الساعة 02:50 AM. السبب: أخطاء برمجية
خليل سليم is offline   قديم 27-09-2007, 11:37 PM
الرد مع إقتباس
عضو نشيط
#2  

بارك الله فيك اخي خليل درس رائع ومفيد جدا والشكر موصول للاخت ايناس على هذا الدرس






__________________
@_@
nothing4u is offline   قديم 28-09-2007, 11:29 PM
الرد مع إقتباس
عضو سوبر نشيط
#3  

جزاكم الله خير على على الدرس والصراحه رائع ومفيد
نتمنى منك درس عن الكلاسات والاوبجكت






__________________
Eng.Fedail
Computer and Electronics Engineer
الثلج is offline   قديم 29-09-2007, 08:52 PM
الرد مع إقتباس
عضو نشيط جدا
#4  







شبكة العربية is offline   قديم 21-10-2007, 10:20 PM
الرد مع إقتباس
مشرف قسم التصميم والرسومات والمونتاج
#5  

بارك الله فيكما ... معلومات قيمه ...






سالم العليلي is offline   قديم 27-10-2007, 05:10 PM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
(الدرس رقم 8) درس طريقة إضافة نطاق فرعي والتحكم به توب لاين الويب والويب 2.0 والـ Semantic Web 14 16-03-2006 06:23 PM
(الدرس رقم 10) درس طريقة اخذ نسخة احتياطية للمنتدى توب لاين الإصلاح والصيانة 6 30-10-2005 05:26 AM
(الدرس رقم 9) درس شرح اهم تفاصيل موقعك في لوحة التحكم توب لاين الويب والويب 2.0 والـ Semantic Web 6 28-10-2005 08:05 PM
(الدرس رقم 7) درس التحويل التلقائي من صفحة لأخرى توب لاين الويب والويب 2.0 والـ Semantic Web 4 20-10-2005 05:36 AM
هذا ماقاله الشيخ ابن عثيمين في اخر درس له في الحرم في رمضان محب القسم العام 0 11-01-2001 02:43 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 08:45 PM.