الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كوكيز ... مالمشكلة؟

بدأه blackeyes في 27 سبتمبر 2008 · 8 رد · 829 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

ونبارك لكم قرب حلول عيد الفطر السعيد

اخوتي لي سؤال حول الكوكيز ولم اعرف اين الخطأ

هذا هو الكود

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
		If Request.Cookies("UserName") IsNot Nothing Then
			Response.Cookies.Set(Request.Cookies("UserName"))
		Else
			Response.Cookies.Set(New HttpCookie("UserName", ""))
		End If
		Response.Cookies("UserName").Expires = Now.AddMinutes(30)
	End Sub

	Protected Overloads Overrides Sub OnPreRender(ByVal e As System.EventArgs)
		If Response.Cookies("UserName").Value = Request.Cookies("UserName").Value Then
			Response.Cookies.Remove("UserName")
		End If
		MyBase.OnPreRender(e)
	End Sub

مع اني في مكان اخر اقوم بضبط هذا الكوكيز عند دخول المستخدم

 If Log.Statu = LoginEnum.OK Then
			HttpContext.Current.Response.Cookies("UserName").Value = row("username")
			HttpContext.Current.Response.Cookies("UserName").Expires = Now.AddMinutes(30)
		End If

وفي مكان اخر ايضا أسجل خروج المستخدم

  HttpContext.Current.Response.Cookies("UserName").Expires = Now.AddMinutes(-30)

المشكلة أول مرة يقوم بتذكر المستخدم ولكن اذا قمت بتحديث الصفحة مباشرة اجد الكوكيز انه تم حذفه

اي لايحفظ الكوكيز الا لهذه الجلسة فقط

أين المشكة؟

#4

جرب هذا الكود و لا داعي لل OnPreRender event

Protected Sub Page_Load(sender As Object, e As EventArgs) 
	Dim user As HttpCookie = Request.Cookies("UserName") 
	If user Is Nothing Then 
		user = New HttpCookie("UserName") 
		user.Expires = DateTime.Now.AddMinutes(30) 
		Response.Cookies.Add(user) 
	End If 
End Sub
#5

أنا عندما قرأت الطلب من فترة تهت في طريقة الكتابه ولم استطع الرد ولكن عندما كتبت أخي احمد أجبرت على ان اعقب صديقي صاحب الموضوع لماذا تعقد المواضيع وأنت تستطيع كتابتها بسهولة أتبع الـ easily coding في برمجتك

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#6

اخي الكريم

كيف يعني إيزلي كودنغ؟

بعض مرات تحتاج تكرر الكود باكثر من مكان وهالشي يصعب عملية التصحيح لاحقا

فمثلا في الاجراء الذي يقوم بخروج المستخدم كتبت

HttpContext.Current.Response.Cookies("UserName").Expires = Now.AddMinutes(-30)

بذلك يمكنني تسجيل خروج المستخدم من اي رابط اضعه بدون تعديل الكود الاساسي

وذلك تسهيل على ما أظن وليس تعقيدا

ولكن المشكلة انني تهت بين هاتين

هل

HttpContext.Current.Response.Cookies("UserName")

هي نفسها

Me.Response.Cookies("UserName")

اثارت لي الشك ممادعاني الى طلب المساعدة

وشكرا لكم اخوتي على المساعدة مع اني لم اجرب بعد

تم تعديل هذه المشاركة بواسطة blackeyes في 30 سبتمبر 2008 في 17:30

#7

جرب وضع الكود الموجود في Page_Load داخل IF Not Page.IsPostBack

Sr. Software Development Engineer
Hulu, LLC
My Blogs

#8
اقتباس
ولكن المشكلة انني تهت بين هاتين

هل

كودHttpContext.Current.Response.Cookies("UserName")

هي نفسها

كودMe.Response.Cookies("UserName")

اثارت لي الشك ممادعاني الى طلب المساعدة

هي نفسها

لان HttpContext.Current في حالة وجودك في ال page بتكون ال page هي ال current context

و لكن في بعض الاحيان تحتاج الوصول الي ال page context من كود داخل class اي من خارج ال page code file

فتستخدم HttpContext.Current للاشارة الي ال page context زي مثلا HttpContext.Current.Session

#9

شكرا جزيلا لكم جميعا اخوتي

وجزاكم الله كل خير

المشكلة اني طلعت مخربط بالتالي

ان اقرأ واكتب في Response

بينما الصحيح

ان اقرأ من Requset

واكتب في Response

جزاكم الله كل خير

رغم ذلك الموقع يعمل عندي بشكل سليم

ولكن عند رفعه على السيرفر

لايعمل ؟؟؟

فاضطررت لعمل طريقة اخرى ولا اظنها جيدة

مواضيع مشابهة