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

تسجيل الدخول لمستخدم واحد يشاهده كل مستخدم يدخل على الموقع

مغلق
بدأه العقده في 26 ديسمبر 2007 · 14 رد · 1,530 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لقد قمت بوضع Textbox1 لاسم المستخدم و Textbox2 لكلمة المرور ومفتاح تنفيذ عند الضغط عليه يتم مقارنة اسم المستخدم وكلمة المرور في قاعدة البيانات وفي حالة كانت صحيحه يتم وضع اسم المستخدم في Label في اعلى الصفحه وامامه لينك لتسجيل الخروج .

المشكله انه لو تم تسجيل مستخدم بهذا الشكل .. أي شخص من على الشبكه المحليه يدخل على الموقع يرى اسم الاخ اللي سجل في الــ Label كيف اقدر اخصص عرض بيانات مرتبط فقط بالشخص الذي قام بالتسجيل من الكمبيوتر الخاص به ... او هل هناك طريقه افضل فاخوكم مبتديء ومتعلق وابغى بس امسك اول عتبه وان شاء الله تعالى اوصل السطوح واجلس معاكم اطل على اللي زي حالاتي من فوق .. يا مسطحين يا سطوووووووووووح أبغى اطلع السطووووووووووووح .. :tantrum: :tantrum: :tantrum:

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#2

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

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#3

اخي الكريم

في رأيي ان تستخدم ادوات (Login) المتوفرة في .NET2005 ومن ضمنها الاداة Login view والاداة login status والاداة LoginNameفهي تقيك مغبة كتابة كود طويل ومعقد دونما ضرورة.والله تعالي اعلم.

مع خالص تمنياتي لك بالتوفيق

Be the CHANGE that you want to see in the world..

#4

يا اخوان المشكله واضحه وما تحتاج وضع كود .. الان عندك "العقده" = Label1.Text الان هذا الــ Label1 مخزن فيه القيمه التي تساوي اسم "العقده" الان لو احد فتح الصفحه من جهازه على شبكتنا الداخليه طبيعي سوف يشاهد اسم "العقده" لان "العقده" = Label1.Text والــ Label1 هذا ظاهر على الصفحه الرئيسيه عند تسجيل المستخدم كيف اقدر اجعل الــ Label1 هذا الذي مخزن فيه اسم المستخدم "العقده" ظاهر للعقده فقط . وعند دخول مستخدم اخره اسمه محمد مثلا يكون Label1 هذا فاضي حتى يسجل محمد دخول

ويصبح "محمد" = Label1.Text .

الموضوع كيف احفظ قيمه واعرضها في Label لتحفظ فيه هذي القيمه وتعرض فقط للشخص الذي قام بالتسجيل بها .

اقتباس
ادوات (Login) المتوفرة في .NET2005 ومن ضمنها الاداة Login view والاداة login status والاداة LoginName

بالنسبه للاخ Mohamed Elaigi اشكر لك مساعدتك بصراحه ما عندي اي فكره عن استخدامها هل لي برابط او ارفاق مثال لها او شرح سريع من سعادتكم وهل الطريقه التي استخدمها افضل لانني استطيع ان اتحكم بالمتغيرات بالكود .

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

محمد سماقية اشرك لك مساعدتك .. بصراحه يوجد عندي مشاكل كثيره فارجوك لا تتركني مره انا غرقان في وسط اكواد كتبتها كلها غلط اظاهر .. الطريقه مشروحه اعلاه .. وبالمناسبه توصلت لحل خصائص الادوات Right to Left وبنقرة ماوس زي ما تفضلت بس اللي ماعرفته كيف اعمل للــ GridView -> Clear .

هذا والله يجزيكم خير ويزيدكم من علمه وفضله .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#5

أخي" العقدة":

من أجل مشكلتك السابقة هي غير منطقية واكيد هنا هي مشكلة كود واذا لم اشاهد الكود من المستحيل ان اساعدك قد تكون مشكلة بسيطة واذا كان هناك مشكلة في وضع الكود على المنتدى تستطيع ان ترسله لي عالبريد.

ومن أجلGridView

gridView.DataSource = Nothing
gridView.DataBind()

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#6
protected void Button2_Click(object sender, EventArgs e)
	{
	  CheckUserLogin("Conn", "Select USERNAME From USERS_WORK Where Trim(USERNAME) ='" + UserNameTxT.Text + "' And Trim(USERPASS) = '" + UserPassTxT.Text + "'");
	}

public void CheckUserLogin(string connectionString, string queryString)
	{
		using (OracleConnection connection = new OracleConnection(connectionString))
		{
			OracleCommand command = new OracleCommand(queryString , connection);
			connection.Open();

			OracleDataReader DR = command.ExecuteReader();

			Label1.Text = "";

			while (DR.Read())
			{
				Label1.Text = DR.GetString(0);
			}

			DR.Close();
			connection.Close();

			if (Label1.Text == "")
			{
			   Label3.Text = "الرجاء التاكد من اسم المستخدم والرمز السري";
			}
			else
			{
				LinkButton1.Visible = true;
				UserNameTxT.Text = "";
				UserPassTxT.Text = "";
				Button2.Enabled = false;

				// لمتابعتها اثناء التنقل بين الصفحات  UserIDName هنا في حالة نجح تسجي المستخدم في الدخول يتم حفظ القيمه في متغير نصي اسمه 
				ConfigurationManager.AppSettings["UserIDName"] = Label1.Text;

			}


		}
	}

الان اذا سجل العقده الدخول بهذه الطريقه سوف يعرض Label1 اسم العقده .. حلو ولو دخل مستخدم آخر من جهازه على الصفحه سيجد اسم العقده ظاهر في الــ Label1 انا ابغى المستخدم هذا يكون الــ Label1 خالي حتى يتمكن من تسجيل الدخول الخاص فيه وهكذا مع باقي المستخدمين .

واشكرك كثير الشكر على كود الــ GridView تكفى حل لي المشكله هذي حلها راح يخليني اعدي العتبه الاولى اللي عقدتني .

تم تعديل هذه المشاركة بواسطة العقده في 26 ديسمبر 2007 في 15:39

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#7
ConfigurationManager.AppSettings["UserIDName"] = Label1.Text;

هذا خطأ

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

يجب ان تحفظ قيم المتحولات العامة داخل الـsession

ويجب ايضاً ان تعدل داخل حدث load للـpage عند تهئية الـlabel1 ويجب ان تقرأ قيمة الـlabel1 من session أيضاً

تم تعديل هذه المشاركة بواسطة محمد سماقية في 26 ديسمبر 2007 في 15:56

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#8
اقتباس
ConfigurationManager.AppSettings["UserIDName"] = Label1.Text;

طيب .. حتى لو فرضنا وتنازلت عن السطر هذا اعتبره يا سيدي مش موجود مجرد جعل قيمة الــ "العقد" = Label1.Text كل من يدخل على الصفحه سوف يشاهد قيمة هذا الــ Label1 والتي تظهر اسم "العقده" لكل من يلج على الصفحه .

واذا كان رغم هذا كله حلها بالــ الـsession فياريت مثال عن انشاء متغير واستخدامه وحفظ قيمه به .. تكفى يا محمد سماقيه .

اقتباس
ويجب ايضاً ان تعدل داخل حدث load للـpage عند تهئية الـlabel1 ويجب ان تقرأ قيمة الـlabel1 من session أيضاً

هذي وصلت بعد ما اضفت الرد :rolleyes: طيب ارفق لي كود يعالج مشكلتي هذي تكفففففففففففففففففففى .. يابوحميد

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#9
هذي وصلت بعد ما اضفت الرد  طيب ارفق لي كود يعالج مشكلتي هذي تكفففففففففففففففففففى .. يابوحميد

انا اسف كتير كتير كتير لانو انا الآن على رأس عملي وعندي بعض المهام يجب ان انتهي منها ان شاء الله في أقرب وقت وانت حاول تبحث عن session

غداً ان نشاء الله

تم تعديل هذه المشاركة بواسطة محمد سماقية في 26 ديسمبر 2007 في 16:37

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#10

انا اللي اسف واشكرك جدا على اهتمامك .. انتظرك على احر من الجمر غدا ان شاء الله تعالى .

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#11

عزيزي العقدة

مثل ما تفضل الأخ محمد ساقيه انك تستخدم Session لتخزين قيمة Label1.text

Session("UserIDName") = Label1.text

وتتحكم بطول Session من ملف Web.config مثلا لكن تأكد كل ما أغلق المتسخدم المتصفح سوف يطلب منه الدخول من جديد الا اذا تستخدم طريقة الكوكيز مثل المنتديات على سبيل المثال.

الطريقة التي أستخدمها (على الشبكات المحلية) أني أستدعي UserIDName من قاعدة البيانات كل مرة لأن المفتاح لدي هو اسم المستخدم على الشبكة وفي هذه الحالة لا أستخدم Session.

أطيب تحية،،

وكن ذاك الفتى إن مشى

قالوا هذا الأثر

للتواصل الفني

haitham.khaiyat@hotmail.com

#12
	  CheckUserLogin("Conn", "Select USERNAME From USERS_WORK Where Trim(USERNAME) ='" + UserNameTxT.Text + "' And Trim(USERPASS) = '" + UserPassTxT.Text + "'");

يا لهوووووي ي ي ي يالهوي يالهوي ، هذا التنبيه خارج الموضوع مفاده:

إن كان الموقع للعمل او لشركة فأطفال الهاكرز سيعدموا الموقع في 3 ثوان أو أقل والسبب:

حقن جمل sql ، ابحث عن حقن جمل الاستعلام في جوجل ، وقبل البحث جرب تخلي اسم المستخدم: 'user وعتفهم قصدي

#13
mohdabdu كتب:
	  CheckUserLogin("Conn", "Select USERNAME From USERS_WORK Where Trim(USERNAME) ='" + UserNameTxT.Text + "' And Trim(USERPASS) = '" + UserPassTxT.Text + "'");

يا لهوووووي ي ي ي يالهوي يالهوي ، هذا التنبيه خارج الموضوع مفاده:

إن كان الموقع للعمل او لشركة فأطفال الهاكرز سيعدموا الموقع في 3 ثوان أو أقل والسبب:

حقن جمل sql ، ابحث عن حقن جمل الاستعلام في جوجل ، وقبل البحث جرب تخلي اسم المستخدم: 'user وعتفهم قصدي

صحيح اخي 'mohdabdu' وشكرا على الملاحظة

ولكن هذه البرمجة من المستحيل ان تكون لموقع ضخم أو موقع للعمل على كل حال من اجل تفادي هذه الاخطاء ومن اجل العمل الصحيح انصح أخي العقدة ان يشاهد هذا الرابط الذي يتكلم عن data access

http://asp.net/learn/data-access/

وهكذا تستطيع ان تتفادى حقن جمل sql باستخدام الـpatern أو الهيكلية السابقة وان تبني الموقع بناءً صحيح وقابل للتطوير

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





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#14
اقتباس
الطريقة التي أستخدمها (على الشبكات المحلية) أني أستدعي UserIDName من قاعدة البيانات كل مرة لأن المفتاح لدي هو اسم المستخدم على الشبكة وفي هذه الحالة لا أستخدم Session.

الاخ هيثم خياط طريقه افضل فعلا لكن ماذا استخدم لربط اسم المستخدم مع الجهاز الذي سجل دخول منه حتى لا اعود لنفس نقطة البدايه ويظهر اسمه مع جميع المستخدمين !

الاخ mohdabdu شكرا على الملاحظه الهامه .

عزيزي محمد سماقية اشكرك كثير الشكر والموقع غني بالمعلومات الهامه صراحه .

ساحاول ابحث عن مواضيع الامن والامان بعـد ما اتقن على الاقل التعامل مع ASP.NET .. أما بالنسبه لنا فالعمل جاري على شبكه داخليه مغـلقه ليس لها اتصال خارجي DSL او WAN شبكتنا تتكون من سيرفر واحد بدومين واحد و70 مستخدم اغلب اعمالهم على انظمة سكرتاريه وارشيف وشوؤن موظفين واداره ماليه جميعها تم عمل برامجها بواسطة VB6 و Oracle 9i عند رغبة شديده في تعلم هذه اللغه ASP.NET التي سرقت من عيني النوم لنقل تلك البرامج على بيـئـتها بفضل الله عز وجل على الجميع وعلي ثم بمساعدتكم وخبرتكم في هذا المجال ساشق هذا الطريق بكل سهوله ويسر ان شاء الله تعالى .

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

تم تعديل هذه المشاركة بواسطة العقده في 27 ديسمبر 2007 في 18:00

ليس كل ما يتمناه المرء يدركه

arabteam2000.gif

#15

عزيزي.. الطريقة الي قصدتها للتعرف على المستخدم هو الحساب على الشبكة الداخلية باستخدام التعريف التالي:

 Dim UserName As String = HttpContext.Current.User.Identity.Name.ToString()

وهذا يتطلب أن يكون Windows Authentication أن يكون مفعل على إعدادات الويب. بالطبع يكون أسماء المستخدمين مسجلة مسبقا في قاعدة البيانات.

بالتوفيق.

تم تعديل هذه المشاركة بواسطة هيثم خياط في 27 ديسمبر 2007 في 20:48

وكن ذاك الفتى إن مشى

قالوا هذا الأثر

للتواصل الفني

haitham.khaiyat@hotmail.com

هذا الموضوع مغلق.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…