PDA

View Full Version : سوال: ساخت فرم لاگین به نرم افزار



djhooman
پنج شنبه 07 مهر 1390, 01:22 صبح
سلام دوستان

خیلی سرچ کردم تو سایت تا از زدن تاپیک بیهوده جلوگیری کنم که نشد ...

من میخوام برای برنامم فرم لاگین بسازم ..

دیتابیس ام SQL هست ....

میخوام برنامه یه یوزر دیفالت داشته باشه که اون یوزر بتونه به همه فرم ها دسترسی داشته باشه ....
بعد اون یوزر دیفالت بتونه N تا یوزر درست کنه ...
یعنی مثل یه مدیر با دسترسی کامل ، مدیر داخلی ، کارمند

بعد وقتی یوزر به دیتابیس Add شد و مثلا اسمش هومن بود ، بیاد اول چک کنه ببینه طرف به چه فرم هایی دسترسی میتونه داشته باشه یا نه ...

یعنی مثلا 10 تا فرم تو برنامه داریم کلا !
یوزر هومن بتونه به 3 تاش دسترسی داشته باشه و همه ی فرم ها توی TooltipMenustrip بصورت منو هستش ....
برای یوزر مدیر کل ، همه گزینه های تولتریپ منواستریپ فعال باشه و مدیر کل بتونه برای کاربرای جزء ، مثلا فلان فرم فعال یا غیر فعال باشه ...

اگه سورسی اموزشی چیزی دارید دریغ نکنید که یاد بگیرم ...

مرسی

M.KH-SH
پنج شنبه 07 مهر 1390, 02:51 صبح
تو بانک مقدار فرم هایی که میخوایی کنترول داشته باشی رو مشخص کن بعد برای هر کدوم از افراد تو بانک میتونی با true و false کردن اون مقدار دسترسی بدی.
برای اینکه برنامه درست اجرا بشه تو فرم لود دستور ها رو وارد کن که از بانک باید کوئری بگیری


75988

arash020
پنج شنبه 07 مهر 1390, 08:47 صبح
سلام
پس کو لینک دانلود ؟؟؟!!!

دوست عزیز: djhooman

این چیزی که مد نظر شماست کار سختی نیست
من هم یه چنین چیزی رو توی پروژه کاردانیم پیاده سازی کرده بودم
با این ویزگی خاص که با registry کار میکردم و یه جورایی بازی بودش!!!
شما که تعداد فرم هات ثابته مگه نه؟
پس توی قسمت تعریف کاربر
1.کاری کن که علاوه بر فیلدای معمول
کاربر ملزم به تعیین سطح دسترسی باشه
بعد اونا رو توی بانکت یل اصلا راحت تر همون رجیستری دخیره کن
حالا موقع لاگین کردن هم باید ملزم باشه که نوع کاربر و سطح دسترسی مشخص شه.
حالا وقت کار اصلیه
باید توی هر رویدادی که موجب نمایش اون فرم های حساس میشه این کاربر رو چک کنی که کیه هستن ایشون و قدرتشون چقدره.
موفق باشی

M.KH-SH
پنج شنبه 07 مهر 1390, 09:53 صبح
نرم افزار تجاری هستش و برای همین منظور شما میتونین تهیه کنین نسخه این برنامه رو.

djhooman
پنج شنبه 07 مهر 1390, 13:08 عصر
آرش جان مرسی ...

اما یه مثال قوی میخوام که Step by Step اش علوم باشه ......

میخوام کامل یاد بگیرم .....

برای همین بهترین آموزش ، سورس هستش ...

djhooman
پنج شنبه 07 مهر 1390, 13:08 عصر
لطفا اگر میشه یه سورس برام با بانک SQL بذارید ...

حالا فارسی یا انگلیسی مهم نیست ....

ممنون

djhooman
جمعه 08 مهر 1390, 16:21 عصر
کسی نبووووووووووووووووووووووو ووووووووووود ؟ ؟ ؟ :قهقهه:

یعنی اینقدر سوالم سخته ؟ :لبخند::لبخند:

djhooman
دوشنبه 11 مهر 1390, 23:38 عصر
دوستان خیلی بازم سرچ کردم

لطف میکنید کمک کنیددد ؟؟؟
یه ریفرنسی ، مثالی،یه چیزی که یادبگیریم ...

djhooman
چهارشنبه 13 مهر 1390, 00:20 صبح
تعداد


مشاهده ها: 120 این پست هست ....

کسی نمیدونه ؟؟؟

nokhodsiah2001
چهارشنبه 13 مهر 1390, 13:21 عصر
درود
روشهای زیادی برای این کار هست یکی از این روشها همونیه که دوستمون M.KH-SH (http://barnamenevis.org/member.php?220554-M.KH-SH) گفت ولی من شخصاً یک کنترل پنل مخصوص درست میکنم برای برنامه تا توی اون برای هر کاربر منو های قابل دسترسی رو مشخص کنم بعد موقع بالا آمدن برنامه سطح دسترسی کاربر رو بررسی می کنم و براساس اون منو رو تغییر می دم یعنی تو منو ها میانبرها رو فعال و غیر فعال می کنم به این شکل امکان دسترسی به بعضی فرمها و در نهایت اطلاعات محدود و قابل کنتر میشه
پیروز باشی

djhooman
چهارشنبه 13 مهر 1390, 23:59 عصر
nokhodsiah2001 (http://barnamenevis.org/member.php?38035-nokhodsiah2001) عزیز

میدونم ! اما مثال میخوام که عملا یاد بگیرم !

arash020
پنج شنبه 14 مهر 1390, 02:16 صبح
عزیزم فکر نکن بهترین کمک سورسه
سورس ماهی گرفته ست
ما هممون بهتره درست کردن قلاب و ماهیگیری رو یاد بگیریم:لبخند:
(نه برنامه نویسی...:بامزه:)

arash020
پنج شنبه 14 مهر 1390, 02:23 صبح
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Me.Left = My.Computer.Screen.WorkingArea.Width - My.Computer.Screen.WorkingArea.Width - 200 Then
Timer1.Enabled = False
'Dim loginff As New LoginForm
'loginff.ShowDialog()
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "adminname", Nothing) = "" Then
MsgBox(" !کاربر مدیر تعریف نشده است " + vbNewLine + ".برای شروع باید حتما کاربر مدیریت تعریف گردد", MsgBoxStyle.Information)
Me.Hide()
Userform.Show()
Userform.ttype.Text = "مدیریت"
Userform.ttype.Enabled = False
Else
LoginForm.Show()
Me.Hide()
End If
ElseIf Me.Left <> My.Computer.Screen.WorkingArea.Width Then
Me.Left = Me.Left - 2
End If
End Sub



این کد توی تایمر حرکت دهنده فرم loading یکی از پروژه هامه ک اینی که شما مد نظرته توش لحاظ شده.

و در ادامه ...

arash020
پنج شنبه 14 مهر 1390, 02:54 صبح
و این هم کد رویداد کلیک دکمه ی ورود فرم login هستش :


Private Sub GlassButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GlassButton1.Click

If un.Text <> "" And Pas.Text <> "" Then
cunt.Text = Val(cunt.Text) + 1
End If
'MsgBox(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", Nothing))
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", Nothing) = 5 Then
'// Standby
Dim o As String
o = MsgBox("!شما مجاز به ورود نیستید", MsgBoxStyle.Exclamation)
If o = vbOK Then
System.Diagnostics.Process.Start("ShutDown", "/l")
End If
Else
cu += 1
'MsgBox(cu)
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", cu)

End If
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", cu)
If namfam.Text = "" Then
MsgBox(".لطفا نام و نام خانوادگی خود را وارد نمایید", MsgBoxStyle.Exclamation)
namfam.Select()
Exit Sub
End If
If un.Text = "" Then
MsgBox(".لطفا نام کاربری خود را وارد نمایید", MsgBoxStyle.Exclamation)
un.Select()
Exit Sub
End If

If Pas.Text = "" Then
MsgBox(".لطفا رمز عبور خود را وارد نمایید", MsgBoxStyle.Exclamation)
Pas.Select()
Exit Sub
End If
If un.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "adminun", Nothing) And Pas.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "adminpas", Nothing) Then
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "activeuser", "مدیریت")
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "activeusernamfam", namfam.Text)
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", 0)
Me.Hide()
master.Show
Exit Sub
Else
If Pas.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "ranandepas", Nothing) And un.Text = My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "ranandeun", Nothing) Then
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "activeuser", "رانندگان")
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "activeusernamfam", namfam.Text)
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "cunter", 0)
Me.Hide()
Master.Show()
Me.Hide()
Exit Sub
Else
GoTo n
End If
End If
n:
MsgBox("!!!دسترسی غیر ممکن", MsgBoxStyle.Critical)
un.Text = ""
Pas.Text = ""
'namfam.Text = ""
un.Select()
'---------
'If Pas.Text <> My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "ranandepas", Nothing) And un.Text <> My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "ranandeun", Nothing) Then
' MsgBox("!!!دسترسی غیر ممکن")
' un.Text = ""
' Pas.Text = ""
' un.Select()
' Exit Sub
'Else
' Me.Hide()
' Master.Show()
'End If
'Dim MyDataAdapter As SqlDataAdapter
'Dim DS As New DataSet()
'Dim connectionString As String = My.Settings.salam
'Dim con As SqlConnection = New SqlConnection(connectionString)
''==============
'Dim sqlString As String = "Select username FROM users WHERE username= '" & un.Text & "'"
'MyDataAdapter = New SqlDataAdapter(sqlString, con)
'con.Open()
'MyDataAdapter.Fill(DS, "users")
'MsgBox(DS.Tables("users").DefaultView.Count)
'If DS.Tables("users").DefaultView.Count <> 0 Then
' MsgBox("مجاز نیستید", MsgBoxStyle.Exclamation, " خطا")
' MyDataAdapter.Dispose()
' con.Close()
' con.Dispose()
' Exit Sub
'End If
''Master.Show()
''Me.Hide()
End Sub

arash020
پنج شنبه 14 مهر 1390, 03:03 صبح
و قدم آخر زمانیه که کاربر میخواد به فرم خاصی وارد بشه :
توی این مثال اگه راننده به عنوان کسی که به برنامه login کرده تشخیص داده بشه
از ورودش به اون فرم جلوگیری میشه
کد دکمه ورود به آن فرم :


Private Sub ComboBox2_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ComboBox2.MouseUp
If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\EagleTax\users", "activeuser", Nothing) = "رانندگان" Then
MsgBox(".کاربر راننده اجازه تغییر نوبت را ندارد", MsgBoxStyle.Critical)
ComboBox2.SelectedIndex = (ComboBox2.Items.Count - ComboBox2.Items.Count)
End If
End Sub





سوالی اگه از هرجای اینا کدها داری بپرس.
موفق باشی

djhooman
جمعه 15 مهر 1390, 17:45 عصر
این اررور و خیلی میگیره :

Error 1 'Computer' is not a member of 'My'.

djhooman
جمعه 04 آذر 1390, 17:44 عصر
کسی نیست بصورت کاربردی و دقیق آموزش بده این صفحه ساخت کاربر رو !!؟؟؟؟

طوری باشه که بصورت دیفالت یوزری با نام کاربری ادمین و پسورد xxxxxx تو برنامه باشه که همیشه بشه برنامه رو ران کرد ...

2 مدل یوزر دیگه هم ثبت بشه ( اولیش فقط کاربر صندوق بتونه به تمام فرم های ثبت اطلاعات وارد بشه ( مثلا 3 فرم از 9 فرم برنامه ) و دومی حسابدار که بتونه هم داخل فرم های ثبت و ویرایش اطلاعات بره ( مثلا دسترسی به 6 فرم از 9 فرم ) و سومی هم ادمین که دسترسی به همه صفحات داره ....

الگوریتمش و نمیتونم برای خودم طراحی کنم ....

خیـــــــــــــــــــــــ ــــــلی ممنون میشم اگـــــــــــــــــــــــ ـــــــــــــــــر کمک کنید ....

djhooman
شنبه 05 آذر 1390, 20:51 عصر
یعنی کسی نیست بتونه نمونه یا مثالی بذاره تا یاد بگیریم ؟؟؟؟

مثال آموزشی خیلی قدرت درک و بالا میبره ....

M.KH-SH
یک شنبه 06 آذر 1390, 00:35 صبح
دوست عزیز آنالیز رو میگم برات::::::

یک تیبل مخصوص برای کاربران ثبت کن
این تیبل شامل نام کربری ، رمز ورود و صفحاتی که میخوای دسترسی براشون تعریف کنی

حالا دیگه مییای بعد از ورود کاربر با توجه به صفحه هایی که اجازه دسترسی داری شروع به کار میکنه کاربر


خیلی سادست
دقیقا چی میخوای؟؟؟

سورس رو میخوای؟

djhooman
یک شنبه 06 آذر 1390, 03:42 صبح
دقیقا نمیتونم تحلیل کنم ... مثلا صفخات که کاربر قراره بهش دسترسی داشته باشه و ....

M.KH-SH
یک شنبه 06 آذر 1390, 09:47 صبح
خوب دوست عزیز هنگام لود شدن اون فرم ها دستور بنویس که اگه کاربر در بانک اجازه داشت صفحه باز بشه اگه هم نه بسته بشه

morteza@z
پنج شنبه 10 آذر 1390, 17:56 عصر
سلام من این صفحه را در چند صفحه قبل پیدا کردم سوالم نیز همین است فقط این خط کد ها در برنامه خطا میده می خواستم در صورت امکان ازنمونه برنامه گذاشته و استفاده کنیم با همین موضوع با تشکر؟