تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] لخبراء واصحاب الخبرة في برامج صلاحيات المستخدمين.
#1
Information 
لنفرض ان لدينا نظام يعمل بشبكة بمحلية ومرتبط بجهزي او اكثر ولدينا اكثر من مستخدم .
مثل
في جهاز 1 
تم تسجيل الدخول  باسم المستخدم (عمرو). 
وفي جهاز 2 
حاول احد المستخدمين  الدخول باسم المستخدم ( عمرو  ). 
النتجية (ستيم الدخول بالجهازين بنفس اسم المستخدم )
السوال هنا هل يمكنني ان امنع دخل مستخدم واحد للنظام مرتين بنفس الوقت ما الطريقة لعمل ذلك هل عن طريق الكود ام بنشاء جدول .
الرد
تم الشكر بواسطة:
#2
السلام عليكم أخي العزيز ورحمة الله وبركاته
هناك عدة طرق لتفادي هذه المشكلة، وسأقترح عليك الفكرة التالية وأعتقد أنها بسيطة إن شاء الله.
أولا - قم بإضافة حقل جديد على جدول المستخدمين وليكن إسم الحقل Active ونوعه Int ولتكن قيمة الحقل الإبتدائية أو الإفتراصية هي الرقم 0.
ثانيا - عندما عملية الولوج سوف نضيف شرط ثالث إضافة إلى إسم المستخدم وكلمة المرور وهو الحقل Active، فإذا كانت قيمة الحقل Active عند الولوج هي 0 ستتم العملية بنجاح، أما لو كانت قيمة الحقل Active هي 1 فهذا يعني هذا المستخدم هو قيد التفعيل والتنشيط.
ثالثا - ولكن كيف سنقوم بالتعديل على الحقل Active من 0 إلى 1، سوف نستخدم الحدث Update أي عندما يتحقق التطابق بين قيمتي المستخدم وكلمة المرور مع القيم الموجودة في جدول المستخدمين في قاعدة البيانات، بالتالي سوف ينتقل للشرط الثالث وهو ويتحقق من قيمة الحقل Active فإذا كانت 0 سوف يتم الولوج ويعمل على تحديث القيمة من 0 إلى 1 ليصبح المستخدم قيد الإستخدام، بحيث لا يمكن للشخص ثاني أن يستخدم نفس المستخدم لأنه في وضعية التشغيل لأن قيمته الحالية هي 1.

أتمنى أن أكون قد أوصلت الفكرة.
إسرائيل إلى زوال ... وسوف تثبت الأيام ذلك ... قريباً إن شاء الله.
الرد
تم الشكر بواسطة: sendbad100 , sendbad100 , noway
#3
اخي khodor1985 الف شكر على تفعالك وتعاونك معى ....
يا عزيزي الفكرة وصلت .
انا فكرت كذا وطريقة حلوة لكن هناك ستكون مشكلة اذا اضافت حقل Active .
تعال نشوف الية الفكرة .
عند تسجل الدخول سيكون قيمة الحقل 0 اي ان المستخدم غير متواجد
سيتم الدخول بشكل سليم لانه تحقق الشرط الثالث في الولوج .
بعدها يتم تعديل قيمة الحقل Active من 0 الى 1 اى ان المستخدم موجود بجهاز واذا ادخلنا نفس بيانات المستخدم بجهاز اخر سيتم الوصول الى الشرط الثالث ويرفض تسجل الدخول لان لم يحقق الشرط .
هنا يتوجب علينا عند تسجيل خروج المستخدم تعديل القيمة من 1 الى 0 لكى يتمكن الدخول مرة اخره .
المشكلة هنا .
اذا تم قطع التيار او اغلاق البرنامج بشكل خطاء من إدارة المهام او باي طريقة اخرى
لن يتم التعديل من قيمة 1 الى 0 وهنا لن يتمكن المستخدم بالدخول رغم انه غير موجود بالفعل لكن الشرط الثالث يتعرف انة موجود ويرفض الموصلة .
هذي طريقة فكرت فيها ولكن توقفت عند هاذي المشكلة
الرد
تم الشكر بواسطة: khodor1985 , sendbad100 , noway
#4
السلام عليكم

استاذ khodor1985

هناك مشكلة ستحدث في اقتراحكم، وهو لو تم تسجيل الدخول وعلم على Active=1 وأغلق البرنامج دون أن يتم ارجاعه الى 0 في تسجيل الخروج، فلن يتمكن من تسجيل الدخول مرة أخرى.

إذا كان يتم استخدام SqlServer فيمكن الاستعلام عن اسم المستخدم هل تم الدخول أم لا مثل
كود :
SELECT COUNT(loginname) FROM master.dbo.syslogins WHERE [name] = @loginName
فإذا أعاد القيمة (صفر) فيسمح بتسجيل الدخول

هذا يعتمد على المستخدمين المسجلين في SqlServer وليس في جدول بيانات عادي
الرد
تم الشكر بواسطة: khodor1985 , khodor1985 , سعود , sendbad100 , noway
#5
السلام عليكم أخي العزيز ورحمة الله وبركاته
نعم صحيح أخي مساعدة وقد التفت لهذا الموضوع، لقد قمت بتصميم مشروع صغير قاعدة بياناته من نوع أكسس، فكرة المشروع :
- عند إنشاء مستخدم جديد سوف تكون قيمة الحقل Active الإفتراضية 0.
- عند نجاح عملية الدخول سوف يتم تحديث قيمة الحقل Active إلى 1.
- عند الخروج من البرنامج سوف يتم تحديث قيمة الحقل Active إلى 0.

المشروع :
.rar   khodor1985 - DetectSameLogin.rar (الحجم : 114.74 ك ب / التحميلات : 73)

أتمنى لك التوفيق

نعم أخي العزيز عامر ، كلامك بمحله
إسرائيل إلى زوال ... وسوف تثبت الأيام ذلك ... قريباً إن شاء الله.
الرد
تم الشكر بواسطة: سعود , sendbad100 , Amrjamil
#6
المشكلة عند عدم إغلاق البرنامج بشكل طبيعي، ولكن لو تم قتل البرنامج (طبعاً أنتم تعرفوا المقصد).

برامجكم استاذنا لم تعمل معي لاختلاف الاصدار، ولكن بالاطلاع على الكود، وجدت أنكم استخدتم تسجيل الخروج في Form3_FormClosed
الرد
تم الشكر بواسطة: sendbad100
#7
أخي الكريم (مساعدة) من مشاركتك الرائعة عرفت كود الاستعلام عن المستخدمين المضافين يدويا عن طريق الخادم  لكن هل يمكن الاضافة بالكود؟ اي اضيف مستخدم للجدول الرئيسي الخاص بالخادم؟
بحثت على عجالة بقوقل لكن ربما لم اوفق لمصطلح صحيح للبحث عنه.
بارك الله بكما جميعا.
الرد
تم الشكر بواسطة: sendbad100
#8
مرحباً أستاذ سعود

تفضل إضافة مستخدم: اسم المستخدم بدون علامات ' ' ولا يحتوي مسافات
كود :
CREATE LOGIN abc WITH PASSWORD = '123';

وإذا كان اسم المستخدم يحتوي مسافات يجب وضعه بين قوسين []
كود :
CREATE LOGIN [a b c] WITH PASSWORD = '123';

وشاهد هذا المقال
Create a Database User

وإذا أردت بدون كلمة مرور فلا يتم وضع WITH PASSWORD

وإذا أردت الاستعلام عن جميع المستخدمين لقاعدة بيانات معينة
كود :
SELECT  [loginname]
FROM    master.dbo.syslogins
WHERE   [name] = @loginName
    AND [dbname] = 'myDatabaseName'
الرد
تم الشكر بواسطة: khodor1985 , sendbad100


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال عن كود التأكد من صلاحيات المستخدم nagoma 11 351 27-09-18, 05:08 PM
آخر رد: nagoma
  صلاحيات المستخدمون العيدروس 6 169 23-09-18, 07:53 PM
آخر رد: العيدروس
  طلب برامج صغيرة مرحة للاطفال mostafanagy 2 121 20-08-18, 03:14 AM
آخر رد: وعد مولود
Music [VB.NET] صلاحيات المستخدمين محمد بوقزاحة 3 216 18-07-18, 09:20 PM
آخر رد: asemshahen5
Star صلاحيه مستخدمين | إدارة المستخدمين YousefOkasha 7 445 16-07-18, 12:11 AM
آخر رد: elgokr
Star برنامج دعم المستخدمين | خدمة عملاء YousefOkasha 0 7,645 12-07-18, 02:04 PM
آخر رد: YousefOkasha
  كيف تعمل برامج التحميل ؟ لماذا التحميل عن طريقها سريع جداً؟! silverlord 7 1,439 23-06-18, 09:22 PM
آخر رد: YousefOkasha
Photo [سؤال] لأهل الخبرة أواجه مشكلة في قراءة بيانات من الداتا جريد فيو الى كريستال ريبورت dametucorazon 11 444 17-06-18, 03:15 AM
آخر رد: elgokr
  اسئلة حول الفيجوال دوت نت ويا ريت يساعدني أهل الخبرة alaa.altunsi 6 277 13-05-18, 05:33 AM
آخر رد: alaa.altunsi
  [vb6.0] لخبراء التحويل من vb6 الى vb.net dubai.eig 0 165 18-04-18, 08:13 PM
آخر رد: dubai.eig

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم