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

منع الدخول بنفس اسم المستخدم من أكثر من مكان..

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

السلام عليكم ياشباب،،

كيف استطيع ان امنع الدخول باسم المستخدم اكثر من مرة في وقت واحد.

او حتى عند تسجيل الدخول باسم المستخدم من مكان آخر يتم اخراج الاول (كما هي الحال في البنوك) بحيث لاتستطيع الدخول من اكثر من مكان في نفس الوقت.

مع التحية للجميع،، :D

#2

قم بتسجيل ال IP في قاعدة البيانات لآخر واحد سجل الدخول، وقارن القيمة مع قيمة ال IP للشخص الذي يطلب الصفحات في الحدث

Application_EndRequest

بالتوفيق

logo.gif
استضافة ويندوز


اقتباس

مساحة تبدأ من 2000 ميجا بايت بسعر 1.99 دولار شهريا.ا

اقتباس

ASP.NET 1.1-2.0-3.0-3.5-4.0-4.5.1 / MVC ASP.NET / PHP 5.x / ColdFusion / MSSQL 2008 & 2012 / MYSQL

#3

عزيزي smiling4ever

طيب لو افترضنا انه تم تسجيل الIP للمستخدم الاول وحاول الدخول شخص آخر بنفس اسم المستخدم وعندها طبعاً يتم مقارنة الIP الحالي مع المسجل في الدتابيس اذا لم يكن نفسه يقوم بتسجيل الIP الثاني ويطرد الاول؟؟ فكيف ممكن ان اظهر رسالة للمستخدم الاول بانه تم تسجيل الدخول له من مكان آخر واخرجه من الموقع؟؟؟

وشكراً لك،،

#4

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

أعتقد أن فكرة تسجيل الـ IP ليست جيدة في كل الأحوال, هنالك بعض الشبكات لا تعمل علي Static IP Address حيث يقوم DHCP بتوزيع أرقام الـ IP اوتوماتيكياً.ولكن في حال العناوين الثابته فهي حل جيد.

هنالك طريقة أخري لمنع تسجيل الدخول للمستخدم الواحد أكثر من مرة وهي عن طريق إضافة حقل لجدول المستخدمين , مثلاُ Logon ونوع الحقل منطقي Bit,True/False بحيث تقوم بتعديل القيمة عند الدخول وتعديلها مرة أخري عند إنتهاء الـ Session في الحدث الموجود داخل الملف Global.asax وعند محاولة شخص أخر باستخدام نفس اسم المستخدم تقوم فقط بعد التأكد من معلومات الدخول بإختبار قيمة الحقل الجديد.

بالنسبة لـ : عند تسجيل الدخول باسم المستخدم من مكان آخر يتم اخراج الاول, لايمكن تطبيق هذه العملية علي الـ ASP.NET أو الـ Web Based Application بصوره عامة لان الصفحة تفتح عند الـ Client, بطبيعة الحال يمكنك التحايل عليها وذلك بإستخدام إجراء يعمل كل فترة زمنية محددة (مع عمل Refresh للصفحة) ولا أعتقد أنها طريقة جيدة.

توضيح بسيط للاخ الكريم smiling4ever أعتقد أن الحدث Session_End أفضل من Application_EndRequest.

والله الموفق

تم تعديل هذه المشاركة بواسطة Ammar Gaffar في 19 فبراير 2007 في 10:18

#5
Ammar Gaffar كتب:
السلام عليكم ورحمة الله

أعتقد أن فكرة تسجيل الـ IP ليست جيدة في كل الأحوال, هنالك بعض الشبكات لا تعمل علي Static IP Address حيث يقوم DHCP بتوزيع أرقام الـ IP اوتوماتيكياً.ولكن في حال العناوين الثابته فهي حل جيد.

هنالك طريقة أخري لمنع تسجيل الدخول للمستخدم الواحد أكثر من مرة وهي عن طريق إضافة حقل لجدول المستخدمين , مثلاُ Logon ونوع الحقل منطقي Bit,True/False بحيث تقوم بتعديل القيمة عند الدخول وتعديلها مرة أخري عند إنتهاء الـ Session في الحدث الموجود داخل الملف Global.asax وعند محاولة شخص أخر باستخدام نفس اسم المستخدم تقوم فقط بعد التأكد من معلومات الدخول بإختبار قيمة الحقل الجديد.

بالنسبة لـ : عند تسجيل الدخول باسم المستخدم من مكان آخر يتم اخراج الاول, لايمكن تطبيق هذه العملية علي الـ ASP.NET أو الـ Web Based Application بصوره عامة لان الصفحة تفتح عند الـ Client, بطبيعة الحال يمكنك التحايل عليها وذلك بإستخدام إجراء يعمل كل فترة زمنية محددة (مع عمل Refresh للصفحة) ولا أعتقد أنها طريقة جيدة.

توضيح بسيط للاخ الكريم smiling4ever أعتقد أن الحدث Session_End أفضل من Application_EndRequest.

والله الموفق

الأخ عمار شكرا للتعليق،

في الحقيقة طريقتك من الطرق الجيدة لحل مشكلة الأخ، المشكلة في هذه الطريقة

هي أنك لا تستطيع الاعتماد على الحدث Session_end لأنك لا تستطيع تنبؤ

حدوثه.

ال Application_EndRequest هو حدث يعمل عند طلب أي صفحة من نوع ASP.NET

برأيي الاعتام على ال IP سيعطي نتيجة أدق مع استخدام الحدث السابق، ولكنه سوف يكون مزعج قليلا على المخدم

عند وجود زيارات كبيرة للموقع.

الطريقة التي ذكرتها جيدة أيضا ويمكن استخدامها في أي ظرف

شكرا

logo.gif
استضافة ويندوز


اقتباس

مساحة تبدأ من 2000 ميجا بايت بسعر 1.99 دولار شهريا.ا

اقتباس

ASP.NET 1.1-2.0-3.0-3.5-4.0-4.5.1 / MVC ASP.NET / PHP 5.x / ColdFusion / MSSQL 2008 & 2012 / MYSQL

#6

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

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

بالنسبة للحدث Session_End , والشئ الجيد فيه انك لا تستطيع التنبؤ بحدوثة :lol: وفي الطريقة التي ذكرتها وفي حين حدوث هذا الحدث هذا يعني أن المستخدم قام بتسجيل الخروج من الموقع أو لم يستخدم أي امر طوال فترة الـ Session الإفتراضية أو المحددة في الـ Web.config عندها سيتم في هذا الحدث تعديل قيمة الحقل الإضافي.

عندها لا يحتاج الي تخزين أي معلومة إضافية , وكما قال الأخ smiling4ever حدث Application_EndRequest سيكون مزعجاً جداً في حال كثرة المستخدمين.

والله الموفق

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

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

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

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

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

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