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

سؤالي في Cookies

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

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

لدي في احدى الصفحات تسجيل دخول

وعند الدخول للصفحة يتم انشاء Cookies للمستخدم

والكود كالتالي :

			Response.Cookies.Add(new HttpCookie("UserName", reader.GetValue(1).ToString()));
			Response.Cookies.Add(new HttpCookie("Password", reader.GetValue(2).ToString()));
			Response.Cookies.Add(new HttpCookie("Date_Login", DateTime.Now.ToString()));


			Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(5);
			Response.Cookies["Password"].Expires = DateTime.Now.AddDays(5);
			Response.Cookies["Date_Login"].Expires = DateTime.Now.AddDays(5);

ولكن عملية انشاء الكوكيز ليس فيها مشكلة

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

لن تقوم الصفحة بمسح الكوكيز ولن تتجعل المستخدم يقوم بتسجيل خروج

والكود كالتالي :

	  
		Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(-1);
		Response.Cookies["Password"].Expires = DateTime.Now.AddDays(-1);
		Response.Cookies["Date_Login"].Expires = DateTime.Now.AddDays(-1);


		Response.Cookies["UserName"].Values.Clear();
		Response.Cookies["Password"].Values.Clear();
		Response.Cookies["Date_Login"].Values.Clear();

		Response.Cookies.Clear();

ما السبب في ذلك وما الحل ؟

تم تعديل هذه المشاركة بواسطة ماكسيموس في 8 سبتمبر 2009 في 14:03

#2
Response.Cookies["UserName"].Expires =DateTime.Now;

هكذا يمكن انهاء الكوكي

باستخدام

DataTime.Now

تم تعديل هذه المشاركة بواسطة islamicnfo_a في 8 سبتمبر 2009 في 16:13

arab-code-logo.png

---------------------------

ليست المشكلة أن تخطــىء ، حتى لوكان خطئك جسيما

وليست الميزة أن تعترف بالخطـــأ وتتقبل النصح .. إنمـا

العمل الجبــار الذي ينتظرك حقا هو أن لا تعـــــــــــــود

للخطـــــــأ أبــدا ……

#3

السلام عليكم ورحمة الله وبركاته

فقط قم بحذف هذه الأسطر

		Response.Cookies["UserName"].Values.Clear();
		Response.Cookies["Password"].Values.Clear();
		Response.Cookies["Date_Login"].Values.Clear();

		Response.Cookies.Clear();

أي أن كود الحذف سيكون هكذا

		Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(-1);
		Response.Cookies["Password"].Expires = DateTime.Now.AddDays(-1);
		Response.Cookies["Date_Login"].Expires = DateTime.Now.AddDays(-1);

الكوكيز يتم حذفها بمجرد انتهاء وقتها لذلك لا تحتاج لحذف البيانات الموجودة بداخلها

بالتوفيق

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

#4

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

لقد تم حل المشكلة

ولكن يوجد سؤال اخر .

وهو لماذا عند القيام بتسجيل الدخول لابد من الانتظار بعد الوقت

لكي تستطيع تسجيل الخروج .؟ والعكس صحيح

لماذا لابد من الانتظار بعض الوقت لتسجيل الدخول

بعد تسجيل الخروج

اي لا تحدث كل عملية (تسجيل دخول- تسجيل خروج )

الا بعد الانتظار .

وكوود الصفحة التي ظهرت فيها المشكلة كالتالي :

<%
						if (Request.Cookies["User_Name"] == null || Request.Cookies["E_mail"] == null)
						{
						%> 
					<table width="100%">
					<tr><td colspan="2">دخول </td></tr>
					<tr><td colspan="2"><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
					<ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server"  TargetControlID="TextBox2" WatermarkText="البريد الإلكتروني"></ajaxToolkit:TextBoxWatermarkExtender>
					</td></tr>
					<tr><td colspan="2"><asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox>
					<ajaxToolkit:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender2"  runat="server"  TargetControlID="TextBox3" WatermarkText="كلمة المرور">  </ajaxToolkit:TextBoxWatermarkExtender>
					</td></tr>
					<tr><td colspan="2"><asp:CheckBox ID="CheckBox1" runat="server" Text="حفظ بياناتي" Checked="true" /></td></tr>
					<tr><td colspan="2"><asp:Button ID="Button3" runat="server" Text="دخول" 
							Width="60px" onclick="Button3_Click" /></td> </tr>
					<tr><td colspan="2"><asp:Label ID="Label2" runat="server" ForeColor="Red"></asp:Label></td></tr>
					</table>
					<% }
						if (Request.Cookies["User_Name"] != null || Request.Cookies["E_mail"] != null)
						{
							string Email = Request.Cookies["E_mail"].Value.ToString();
							if (Email.Trim() != "")
							{
					 %>
					<table width="100%" style="font-family:Tahoma;font-size:8pt;color:Black">
					<tr><td>اهلاً وسهلا بك : </td></tr>
					<tr><td><%= Request.Cookies["UserName"].Value.ToString()%></td></tr>
					<tr><td>
						<asp:Button ID="Button4" runat="server" Text="خروج" Width="60px" 
							onclick="Button4_Click" /></td> </tr>
					</table>

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