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

تفعيل اسم المستخدم وكلمة السر عند الولوج

مغلق
بدأه karramli في 25 مايو 2004 · 9 رد · 737 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أعزائي ،

عند تحميل البرنامج يقوم بإلتقاط اسم المستخدم من الشبكة بواسطة الدالة GetUserName ، كيف لي الحصول على كلمة السر أيضاوالتحقق من صحتها

مع الشكر

#2

GetUserName هو win32 api للحصول على اسم المستخدم في الجهاز الذي يعمل عليه البرنامج.

هل تعني بالشبكة(عبر ال winsock ) ام LAN ؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#3

أقصد "لان" حيث أن نسخة من البرنامج ستنصب على جهاز عميل متصل بالشبكة المحلية ومنضم الى الدومين

#4

اخي بحثت لك عن طريقة لجلب كلمة السر لكنها مستحيلة لان ال microsoft حريصين على ان تكون محفوظة في ملف لا يعرفه احد.

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

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#5

تمام ، يوجد جدول بقاعدة البيانات بإسم [mnuUsers] حيث يتوفر على أسماء المستخدمين مطابقة لأسماهم في الميدان بالإضافة الى حقل كلمة السر وهو على قاعدة بيانات ميكروسوفت سيكوال 2000 على جهاز الخادم الرئيسي .

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

مع الشكر

#6

هذا امر ال SQL

"Select Password from mnuUsers where username = " & username.Text

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#7

أنا كتبت التالي

Dim rst As Recordset

Set rst = "Select Password from cmdUsers where user = " & Me.txtUserName.Text

If rst!Pass = Me.txtPassword.Text Then

OK = True

Me.Hide

Else

MsgBox "Invalid Password, try again!", , "Login"

txtPassword.SetFocus

txtPassword.SelStart = 0

txtPassword.SelLength = Len(txtPassword.Text)

End If

هذا ماكتبته سابقا ولكن لم ينجح أى تعليق علماّ أن الجدول متص بواسطة بيئة بيانات (data environment) .

مع الشكر

#8

لا اعرف لكن الا يجب ان يكون

RS.RecordSource = "select password from mnuusers where username = " & user.txt

لو سمحت فم بارفاق المشروع ؟

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#9

أشكرك أخ راكان على المتابعة وأرجو لك التوفيق ، أنا مطور VBA بالدرجة الأولى وهذه أول مرة أكتب بها على vb 6 من حوالى 3 أيام . وقد توصلت الى الكود الصحيح بعد تفكير عميق وهو التالي

Option Explicit

Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _

"GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function apiGetComputerName Lib "kernel32" Alias _

"GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Public OK As Boolean

Public LoginSucceeded As Boolean

Private Sub cmdCancel_Click()

LoginSucceeded = False

Me.Hide

End Sub

Private Sub cmdOK_Click()

' Open connection.

strCnn = "PROVIDER=MSDASQL;dsn=SB SQL Server;uid=sa;pwd=;database=SBData;"

Set cnn1 = New ADODB.Connection

cnn1.Open strCnn

' Open users table.

Set rstUsers = New ADODB.Recordset

rstUsers.CursorType = adOpenKeyset

rstUsers.LockType = adLockOptimistic

rstUsers.Open "SELECT * FROM MenuUsers WHERE [user] = '" & strUserName & "'", cnn1, , adLockReadOnly

If Me.txtPassword = rstUsers!Pass Then

OK = True

Me.Hide

ElseIf Me.txtPassword <> rstUsers!Pass Then

MsgBox "Password you entered is incorrect.", vbInformation, "Health Insurance System"

SendKeys "{Home}+{End}"

Static intpswdcount

intpswdcount = intpswdcount + 1

If intpswdcount = 3 Then

MsgBox "Exiting the system!", vbInformation, "Health Insurance System"

Unload Me

End If

End If

rstUsers.Close

cnn1.Close

End Sub

Private Sub Form_Load()

Dim lngLen As Long, lngX As Long

strUserName = String$(254, 0)

lngLen = 255

lngX = apiGetUserName(strUserName, lngLen)

If lngX <> 0 Then

strUserName = Left$(strUserName, lngLen - 1)

Me.txtUserName = strUserName

Else

strUserName = ""

Me.txtUserName = ""

End If

lngLen = 16

strCompName = String$(lngLen, 0)

lngX = apiGetComputerName(strCompName, lngLen)

If lngX <> 0 Then

strCompName = Left$(strCompName, lngLen)

Me.txtMachine = strCompName

Else

strCompName = ""

Me.txtMachine = ""

End If

End Sub

لاحظ أن المشكلة كانت في الأقواس حول الحقل user حيث أنها لم تذكر في المحاولات السابقة وهى غير مطلوبة في vba الى فى حالات نادرة .

مع الشكر

#10

ممتاز. انا سعيد بانك حليت مشكلتك بنفسك :)

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

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

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

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

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

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

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