amir_adam83 قام بنشر فبراير 1, 2021 قام بنشر فبراير 1, 2021 السلام عليكم ورحمة الله وبركانة اريد كود يمنع دخول المستخدمين باسم واحد على الشبكة بمعنى user: Amr Pass:**** تم دخول امير على جهاز رقم واحد ومن ثم ذهب الى جهاز اتنين وادخل نفس اسم المستخدم وكلمة المرور وللاسف الشديد تم دخوله الى الجهاز رقم اتنين هل من طريقه او من كود عند ادخال اسم المستخدم يعطي له رسالة بان اسم المستخدم هذا متواجد بالفعل شكرا لكم
kanory قام بنشر فبراير 1, 2021 قام بنشر فبراير 1, 2021 (معدل) هناك افكار عديدة لعمل ذلك منها هذه الصوره جرب تشغيل المرفق باي يوزر ..... ثم اعد تشغيل النموذج الرئيسي مرة اخرى ولا حظ جرب الخروج من النموذج عن طريق الضغط على Exit ثم اعد تشغيل النموذج الرئسي مرة اخرى ولاحظ Test_kan.accdb تم تعديل فبراير 1, 2021 بواسطه kanory 1
sandanet قام بنشر فبراير 1, 2021 قام بنشر فبراير 1, 2021 اخي الكريم بامكانك عمل مصادقة عن طريق اسم المستخدم والرقم السري المشار اليه أعلاه Amr - **** بالاضافة الى عنوان الـ uuid الخاص بجهاز المستخدم الذي يحاول الدخول .. بمعنى اخر عندما يقوم احد المستخدمين بتسجيل الدخول باسم Amr والرقم السري **** يقوم نموذج تسجيل الدخول بقراءة رقم الـ uuid لجهاز المستخدم هذا ومن ثم يخزن هذا الرقم في الجدول الذي فيه بيانات الدخول username password uuid وعندما يقوم مستخدم اخر بادخال نفس الاسم والرقم من جهاز اخر يقوم نموذج الدخول بالتحقق من وجود رقم ال uuid اذا ما كان موجود بالجدول ام لا .. فلو وجد ان الرقم مسجل في الجدول عندها يخبر المستخدم بان هذا الاسم مفتوح على جهاز اخر واذا لم يجد رقم مخزن في حقل ال uuid يقوم النموذج بتخزين رقم ال uuid للمستخدم الجديد طبعا لابد من وضع كود يحذف رقم ال uuid من الجدول عندما يقوم المستخدم الاول بتسجيل خروجه لكي يسمح لمستخدم اخر بالدخول ملاحظة: رقم الـ uuid هو رقم فريد لكل جهاز كومبيوتر لايتكرر ولا يتغير حتى لو تمت فرمته الجهاز وهنالك كود يعمل على قراءة هذا الرقم Public Function GetUUID() On Error Resume Next Dim strComputer As String Dim objWMIService, colItems, objItem strComputer = "." 'default to localhost Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems GetUUID = Nz(Trim(objItem.UUID), 0) Next End Function اتمنى ان تكون الفكرة واضحة تحياتي 1
amir_adam83 قام بنشر فبراير 2, 2021 الكاتب قام بنشر فبراير 2, 2021 19 hours ago, sandanet said: اخي الكريم بامكانك عمل مصادقة عن طريق اسم المستخدم والرقم السري المشار اليه أعلاه Amr - **** بالاضافة الى عنوان الـ uuid الخاص بجهاز المستخدم الذي يحاول الدخول .. بمعنى اخر عندما يقوم احد المستخدمين بتسجيل الدخول باسم Amr والرقم السري **** يقوم نموذج تسجيل الدخول بقراءة رقم الـ uuid لجهاز المستخدم هذا ومن ثم يخزن هذا الرقم في الجدول الذي فيه بيانات الدخول username password uuid وعندما يقوم مستخدم اخر بادخال نفس الاسم والرقم من جهاز اخر يقوم نموذج الدخول بالتحقق من وجود رقم ال uuid اذا ما كان موجود بالجدول ام لا .. فلو وجد ان الرقم مسجل في الجدول عندها يخبر المستخدم بان هذا الاسم مفتوح على جهاز اخر واذا لم يجد رقم مخزن في حقل ال uuid يقوم النموذج بتخزين رقم ال uuid للمستخدم الجديد طبعا لابد من وضع كود يحذف رقم ال uuid من الجدول عندما يقوم المستخدم الاول بتسجيل خروجه لكي يسمح لمستخدم اخر بالدخول ملاحظة: رقم الـ uuid هو رقم فريد لكل جهاز كومبيوتر لايتكرر ولا يتغير حتى لو تمت فرمته الجهاز وهنالك كود يعمل على قراءة هذا الرقم Public Function GetUUID() On Error Resume Next Dim strComputer As String Dim objWMIService, colItems, objItem strComputer = "." 'default to localhost Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems GetUUID = Nz(Trim(objItem.UUID), 0) Next End Function اتمنى ان تكون الفكرة واضحة تحياتي بارك الله فيك sandanet ولكن هل الكود هذا يتم وضعه في وحده نمطيه ام وين هل نشاء جدول جديد بارك الله بك هل من طريقه قريبه لهذا الشيء 20 hours ago, kanory said: هناك افكار عديدة لعمل ذلك منها هذه الصوره جرب تشغيل المرفق باي يوزر ..... ثم اعد تشغيل النموذج الرئيسي مرة اخرى ولا حظ جرب الخروج من النموذج عن طريق الضغط على Exit ثم اعد تشغيل النموذج الرئسي مرة اخرى ولاحظ Test_kan.accdb 708 kB · 5 downloads بارك الله بك اخي الكريم ولكن ممكن شرح الكود
sandanet قام بنشر فبراير 2, 2021 قام بنشر فبراير 2, 2021 1 ساعه مضت, amir_adam83 said: ولكن هل الكود هذا يتم وضعه في وحده نمطيه ام وين نعم تضعه في وحدة نمطية وتستدعي الدالة في نموذج تسجيل الدخول ولاتحتاج الى انشاء جدول جديد بل تستخدم نفس الجدول الذي فيه بيانات اسم المستخدم Amr والرقم السري *** عليك ان تضيف حقل اسمه uuid فقط
amir_adam83 قام بنشر فبراير 2, 2021 الكاتب قام بنشر فبراير 2, 2021 11 hours ago, sandanet said: نعم تضعه في وحدة نمطية وتستدعي الدالة في نموذج تسجيل الدخول ولاتحتاج الى انشاء جدول جديد بل تستخدم نفس الجدول الذي فيه بيانات اسم المستخدم Amr والرقم السري *** عليك ان تضيف حقل اسمه uuid فقط اخي الكريم تم بالفعل عمل وحدة نمطيه Public Function GetUUID() On Error Resume Next Dim strComputer As String Dim objWMIService, colItems, objItem strComputer = "." 'default to localhost Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems GetUUID = Nz(Trim(objItem.UUID), 0) Next End Function وهذه هي اكواد شاشة الدخول Option Compare Database Dim GR_Language As Byte Const GR_Arabic As Byte = 1 Const GR_English As Byte = 2 Dim Stest As Byte Dim sTimer As Integer 'Dim db As DAO.Database 'Dim rs As Recordset Private Sub CmdExit_Click() On Error Resume Next '--------------------------------------------------------------------- ' هذا الكود لاغلاق النموذج والخروج من البرنامج | '--------------------------------------------------------------------- DoCmd.Quit End Sub Private Sub Form_Load() On Error Resume Next '--------------------------------------------------------------------- ' هذا الكود لعدم تفعيل زر الدخول الى البرنامج قبل التاكد من التصريخات| '--------------------------------------------------------------------- Me.Log_In.Enabled = False Me.TextYaer.Caption = Format(Date, "yyyy") Me.Labenname.Caption = DLookup("[The_Company's_name]", "Table_02_Copmany_Enter_Pimr") Me.Labelconectt.Caption = CurDir$ End Sub Private Sub Form_Open(Cancel As Integer) On Error Resume Next Me.TimerInterval = 1000 sTimer = 45 '--------------------------------------------------------------------- ' هذا الكود لافراغ كافة التكستات بوكس بالنموذج عند فتح النموذج | '--------------------------------------------------------------------- Me.Us.Text = "" Me.Pass.Text = "" Me.LinkPhoto.Text = "" End Sub Private Sub Log_in_Click() On Error Resume Next myAmirNamw = Me.AmirNamw() 'اسفل mynameuser = Me.NameUser() 'اسم لينك الصورة mylinkSalma = Me.LinkPhoto() mycode = Me.Coder DoCmd.GoToRecord , , acNewRec Dim db As DAO.Database Dim Rs As DAO.Recordset Set db = CurrentDb Set Rs = db.OpenRecordset("Table_02_EmpMoveUsersdr") Rs.AddNew Rs!Code_Emp = Me.Coder Rs!Nam_Emp = Me.NameUser Rs!UserName = Me.AmirNamw Rs!Passowred = Me.Passore Rs!Data_in = Me.DatIn Rs!Tim_in = Me.Time_In Rs!Tim_Out = Me.TimOut Rs!IP_Compuoter = Me.IpComp Rs!Nam_Compuoter = Me.Name_Comp Rs!PicPath1 = Me.LinkPhoto Rs.Update Rs.Close db.Close Set Rs = Nothing Set db = Nothing Forms!Form_02_User_Login.Form.Requery DoCmd.Close DoCmd.OpenForm "Form_03_MainScareen" End Sub Private Sub Pass_AfterUpdate() On Error Resume Next '--------------------------------------------------------------------- ' هذا الكود للتحقق من كلمة مرور الدخول للبرنامج | '--------------------------------------------------------------------- If Pass = Passore Then Me.Log_In.Enabled = True Else MsgBox "عفوا كلمة المرور المدخله غير صحيحه ,Sorry, The Password You Entered Is Incorrect", vbCritical, "Information Systems Security and Protection Officer" Me.Us.Text = "" Me.Pass.Text = "" Me.Log_In.Enabled = False End If End Sub Private Sub Us_AfterUpdate() On Error Resume Next '--------------------------------------------------------------------- ' هذا الكود خاص بجلب بيانات مستخدم من جدول الموظفين في قاغدة البيانات| '--------------------------------------------------------------------- [NameUser] = DLookup("[Nam_Emp]", "Table_01_EnterDataUsers", "UserName=[Us]") [Coder] = DLookup("[Code_Emp]", "Table_01_EnterDataUsers", "UserName=[Us]") [AmirNamw] = DLookup("[UserName]", "Table_01_EnterDataUsers", "UserName=[Us]") [Passore] = DLookup("[Passowred]", "Table_01_EnterDataUsers", "UserName=[Us]") [LinkPhoto] = DLookup("[PicFile]", "Table_01_EnterDataUsers", " UserName=[Us]") If IsNull(DLookup("[UserName]", "Table_01_EnterDataUsers", "[UserName]='" & [Us] & "'")) Then MsgBox " اسم المستخدم المدخل هذا غير صحيح وغير مسجل بسجلات المستخدمين This Username Entered Is Incorrect And Not Registered In User Records", vbCritical, "Information Systems Security and Protection Officer" Me.Us.Text = "" Cancel = -1 Else End If End Sub Private Sub Form_Current() On Error Resume Next '--------------------------------------------------------------------- ' هذا الكود لجلب اسم الكمبيوتر الذي تم الدخول عليه البرنامج | '--------------------------------------------------------------------- Me.Name_Comp = fOSMachineName '--------------------------------------------------------------------- 'هذا الكود لجلب اي بي الكمبيوتر الذي تم الدخول عليه البرنامج | '--------------------------------------------------------------------- Dim myWMI As Object, myobj As Object, itm Set myWMI = GetObject("winmgmts:\\.\root\cimv2") Set myobj = myWMI.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True") For Each itm In myobj Me.IpComp = itm.IPAddress(0) Next End Sub Private Sub Form_Timer() On Error Resume Next sTimer = sTimer - 1 Me.Text10.Value = sTimer If sTimer = 0 Then TimerInterval = 0 MsgBox " انتهى الزمن المخصص للدخول Entry Time Expired...", vbQuestion, "Monitor users" DoCmd.Quit End If Me.LabeNAM.Caption = Name_Comp End Sub اين اضع هذا الكود داخل شاشة الدخول وتم انشاء حقل جديد في جدول المستخدمين اسمه uuid
kanory قام بنشر فبراير 2, 2021 قام بنشر فبراير 2, 2021 فكرة الكود ... خلال نموذج الدخول اذا كان اليوزر والباس صحيح يحدث هذا الحقل الى رقم واحد وعند الدخول من جهاز اخر يقوم بالتاكد من هذا الرقم في حال وجودة يعطي رسالة هناك مستخدم بنفس الاسم على جهاز اخر واذا كان هذا الحقل فارغ يفتح البرنامج طبيعي وطبيعي عند تسجيل خروج يمسح هذا الرقم لاعطائك فرصة للدخول مرة اخرى من اي جهاز اخر ... 1
amir_adam83 قام بنشر فبراير 2, 2021 الكاتب قام بنشر فبراير 2, 2021 11 hours ago, kanory said: فكرة الكود ... خلال نموذج الدخول اذا كان اليوزر والباس صحيح يحدث هذا الحقل الى رقم واحد وعند الدخول من جهاز اخر يقوم بالتاكد من هذا الرقم في حال وجودة يعطي رسالة هناك مستخدم بنفس الاسم على جهاز اخر واذا كان هذا الحقل فارغ يفتح البرنامج طبيعي وطبيعي عند تسجيل خروج يمسح هذا الرقم لاعطائك فرصة للدخول مرة اخرى من اي جهاز اخر ... GetUUID = Nz(Trim(objItem.UUID), 0) هذا الكود اضعه في نموذج الدخول عند التحقق من اسمه المستخدم وكلمة المرور تقصد
kanory قام بنشر فبراير 2, 2021 قام بنشر فبراير 2, 2021 انا كنت اتحدث عن هذا المرفق بارك الله فيك 13 ساعات مضت, kanory said: هناك افكار عديدة لعمل ذلك منها هذه الصوره جرب تشغيل المرفق باي يوزر ..... ثم اعد تشغيل النموذج الرئيسي مرة اخرى ولا حظ جرب الخروج من النموذج عن طريق الضغط على Exit ثم اعد تشغيل النموذج الرئسي مرة اخرى ولاحظ Test_kan.accdb 708 kB · 6 downloads 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.