ايجاد حساب كاربري براي برنامه و Login شدن بآن
مواد لازم : 3 تا فرم -( ايجاد حساب كاربري - تغيير و حذف حساب كاربري - تغيير رمز ورود ) ، يك بانك اطلاعاتي با فيلد به مقدار لازم ، توابع Query و ...
ابتدا فرم ها رو به اين ترتيب بسازيد كه كدهاشونو اينجا گذاردم مي تونيد Copy كنيد و استفاده كنيد:
ايجاد حساب كاربري:
http://axgig.com/images/40489086772791815806.png
كد فرم :
Public Class CreateAccount
Enum UserTypes
Limit = 0
Admin = 1
End Enum
Public Property UserName() As String
Get
Return UserNameBox.Text
End Get
Set(ByVal value As String)
UserNameBox.Text = value
End Set
End Property
Public Property Password() As String
Get
Return PasswordBox.Text
End Get
Set(ByVal value As String)
PasswordBox.Text = value
End Set
End Property
Public Property ConfirmPassword() As String
Get
Return ConfirmPasswordBox.Text
End Get
Set(ByVal value As String)
ConfirmPasswordBox.Text = value
End Set
End Property
Public Property Description() As String
Get
Return DescriptionBox.Text
End Get
Set(ByVal value As String)
DescriptionBox.Text = value
End Set
End Property
Dim UserTP As UserTypes
Public Property UserType() As UserTypes
Get
Return UserTP
End Get
Set(ByVal value As UserTypes)
UserTP = value
End Set
End Property
Public Property SavePass() As Boolean
Get
Return SaveUserPassBox.Checked
End Get
Set(ByVal value As Boolean)
SaveUserPassBox.Checked = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
ErrorProvider1.Clear()
If Len(UserNameBox.Text) = 0 Then
ErrorProvider1.SetError(UserNameBox, "نام کاربري را وارد کنيد")
Exit Sub
End If
FirstForm.UsersTableAdapter1.Fill(FirstForm.UserAc countsDataSet1.Users)
With FirstForm.UserAccountsDataSet1.Users
For I = 0 To .Count - 1
If Me.UserName = Trim(.Item(I).UserName) Then
ErrorProvider1.SetError(UserNameBox, "اين نام کاربري قبلا استفاده شده است")
Exit Sub
End If
Next
End With
If Not PasswordBox.Text = ConfirmPasswordBox.Text Then
If Len(PasswordBox.Text) > 0 Or Len(ConfirmPasswordBox.Text) > 0 Then
ErrorProvider1.SetError(PasswordBox, "رمز ورود و تائيد آن با هم همخواني ندارد")
ErrorProvider1.SetError(ConfirmPasswordBox, "رمز ورود و تائيد آن با هم همخواني ندارد")
Exit Sub
End If
End If
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FBD As New OpenFileDialog With {.Title = "Select an image file..."}
With FBD
If .ShowDialog(Me) = Windows.Forms.DialogResult.Cancel Then Exit Sub
'ROSTAM Statements
UserPhotoBOX.Tag = .FileName
UserPhotoBOX.ImageLocation = .FileName
' UserPhotoBOX.Image = Image.FromFile(.FileName)
End With
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
UserTP = UserTypes.Limit
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
UserTP = UserTypes.Admin
End Sub
Private Sub CreateAccount_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If UserTP = UserTypes.Admin Then
RadioButton2.Checked = True
Else
RadioButton1.Checked = True
End If
End Sub
End Class
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
فرم دوم تغيير رمز ورود يا مديريت حساب :
شكل:
http://axgig.com/images/76544792689713986011.png
كد:
Public Class ModifyAccount
Enum UserTypes
Limit = 0
Admin = 1
End Enum
Public Property UserName() As String
Get
Return UserNameBox.Text
End Get
Set(ByVal value As String)
UserNameBox.Text = value
End Set
End Property
Public Property Password() As String
Get
Return PasswordBox.Text
End Get
Set(ByVal value As String)
PasswordBox.Text = value
End Set
End Property
Public Property ConfirmPassword() As String
Get
Return ConfirmPasswordBox.Text
End Get
Set(ByVal value As String)
ConfirmPasswordBox.Text = value
End Set
End Property
Public Property Description() As String
Get
Return DescriptionBox.Text
End Get
Set(ByVal value As String)
DescriptionBox.Text = value
End Set
End Property
Dim UserTP As UserTypes
Public Property UserType() As UserTypes
Get
Return UserTP
End Get
Set(ByVal value As UserTypes)
UserTP = value
End Set
End Property
Public Property SavePass() As Boolean
Get
Return SaveUserPassBox.Checked
End Get
Set(ByVal value As Boolean)
SaveUserPassBox.Checked = value
End Set
End Property
Public Property OldPassword() As String
Get
Return OldPasswordBox.Text
End Get
Set(ByVal value As String)
OldPasswordBox.Text = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
ErrorProvider1.Clear()
If Len(UserNameBox.Text) = 0 Then
ErrorProvider1.SetError(UserNameBox, "نام کاربري را وارد کنيد")
Exit Sub
End If
FirstForm.UsersTableAdapter1.Fill(FirstForm.UserAc countsDataSet1.Users)
If Not Me.OldPassword = Trim(FirstForm.UsersTableAdapter1.GetPassbyUserNam e(Me.UserName)) Then
ErrorProvider1.SetError(OldPasswordBox, "رمز ورود فعلي را اشتباه وارد کرده ايد")
Exit Sub
End If
If Not PasswordBox.Text = ConfirmPasswordBox.Text Then
If Len(PasswordBox.Text) > 0 Or Len(ConfirmPasswordBox.Text) > 0 Then
ErrorProvider1.SetError(PasswordBox, "رمز ورود و تائيد آن با هم همخواني ندارد")
ErrorProvider1.SetError(ConfirmPasswordBox, "رمز ورود و تائيد آن با هم همخواني ندارد")
Exit Sub
End If
End If
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim FBD As New OpenFileDialog With {.Title = "Select an image file..."}
With FBD
If .ShowDialog(Me) = Windows.Forms.DialogResult.Cancel Then Exit Sub
'ROSTAM Statements
UserPhotoBOX.Tag = .FileName
UserPhotoBOX.ImageLocation = .FileName
End With
End Sub
Private Sub ModifyAccount_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Select Case UserType
Case UserTypes.Admin
RadioButton2.Checked = True
Case UserTypes.Limit
RadioButton1.Checked = True
End Select
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
UserType = UserTypes.Limit
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
UserType = UserTypes.Admin
End Sub
End Class
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
فرم سوم براي Login شدن و تغيير حساب كاربري براي استفاده از برنامه
شكل:
http://axgig.com/images/44070207665565862648.png
كد:
Public Class LoginForm
Public Property UserName() As String
Get
Return UserBox.Text
End Get
Set(ByVal value As String)
UserBox.Text = value
End Set
End Property
Public Property Password() As String
Get
Return PasswordBox.Text
End Get
Set(ByVal value As String)
PasswordBox.Text = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
ErrorProvider1.Clear()
If Not Me.Password = Trim(FirstForm.UsersTableAdapter1.GetPassbyUserNam e(Me.UserName)) Then
ErrorProvider1.SetError(PasswordBox, "رمز ورود را اشتباه وارد کرده ايد")
Exit Sub
End If
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub LoginForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If UserBox.Items.Count > 0 Then
UserBox.SelectedIndex = 0
End If
End Sub
End Class
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
حال طبق آموزشي كه در اين تاپيك قرار دارد يك LocalDatabase براي برنامه ساخته با يك جدول با نام Users با اين فيلد ها:
http://axgig.com/images/24568461573828615892.png
و اين هم تمام Query (توابع) هايست كه بايد براي جدول Users بسازيد ( بهمراه نامشان قيد شده اند براي اينكه اشتباه نشود ابتدا نام سپس : و سپس دستور Query)
InsertQuery:
INSERT INTO Users
(UserName, Password, IsAdmin, ShowPass, Description)
VALUES (@UserName,@Password,@IsAdmin,@ShowPass,@Descripti on)
UpdateQuery:
UPDATE Users
SET UserName = @UserName, Password = @Password, IsAdmin = @IsAdmin, ShowPass = @ShowPass, Description = @Description
WHERE (UserName = @UserName)
DeletebyUserName:
DELETE FROM Users
WHERE (UserName = @UserName)
GetUserTaypeby:
SELECT IsAdmin AS Expr1
FROM Users
WHERE (UserName = @UserName)
GetPassByUserName:
SELECT Password AS Expr1
FROM Users
WHERE (UserName = @UserName)
GetLimitCount:
SELECT COUNT(*) AS Expr1
FROM Users
WHERE (IsAdmin = 0)
GetCountUsers:
SELECT COUNT(*) AS Expr1
FROM Users
GetAdminCounts:
SELECT COUNT(*) AS Expr1
FROM Users
WHERE (IsAdmin = 1)
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
اين هم DropDownButton و آيتم هاش براي كار با حسابهاي كاربري
http://axgig.com/images/24793118785397834435.png
در ضمن براي پروژه سه متغير عمومي در يك ماجول با نام هاي CurrentUserName و CurrentPassword بسازيد
اينم يادم رفت بگم كه يك تابع در همون ماجول بسازيد با نام IsAdmin براي شناسايي نوع حساب كاربري
تابع IsAdmin
Function IsAdmin() As Boolean
If Len(CurrentUserName) > 0 Then
Return FirstForm.UsersTableAdapter1.GetUserTypeby(Current UserName)
Exit Function
ElseIf Len(CurrentUserName) = 0 Then
Return True
Exit Function
End If
Return False
End Function
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
اينم يادم رفت بگم براي نمايش پنجره Login قبل از اجراي برنامه اين متد رو در يك ماجول بنويسيد:
Sub ShowLoginForm()
FirstForm.UsersTableAdapter1.Fill(FirstForm.UserAc countsDataSet1.Users)
If FirstForm.UsersTableAdapter1.GetCountUsers = 0 Then
Exit Sub
End If
LoginForm.UserBox.Items.Clear()
With FirstForm.UserAccountsDataSet1
For I = 0 To .Users.Count - 1
LoginForm.UserBox.Items.Add(.Users.Item(I).UserNam e)
Next
End With
If LoginForm.ShowDialog(FirstForm) = DialogResult.Cancel Then
End
End If
CurrentUserName = LoginForm.UserName
CurrentPassword = LoginForm.Password
End Sub
سپس وارد Application Events از Project Properties لبه Application شده و اين متد را در پروسيجر StartUp صدا بزنيد:
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupE ventArgs) Handles Me.Startup
ShowLoginForm()
End Sub
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
با تشکر از زحمتی که کشیدی.*
خودم می خواستم یه برنامه شبیه این بنویسم بعد یه سئوال کوچیک ؟؟؟ الگوریتم کلی کار چیه ؟؟؟ یعنی چطور باید توی بانک سطح دسترسی کاربران رو تعیین بکنیم؟؟؟
با تشکر.*
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
هز طريق اين QUERY تشخيص داده مي شه آيا كاربر دسترسي كامل داره يا نه
GetUserTaypeby:
SELECT IsAdmin AS Expr1
FROM Users
WHERE (UserName = @UserName
و بدين طريق ميتوان بتوسط نام كاربر نوع حساب كاربري را شناخت
Dim UserAccountType As Boolean = UsersTableAdapter1.GetUserTypeby(UserName$)
كه براي سهولت تابعي با نام IsAdmin ساختيم كه به اين كار كمك مي كنه (دونستن نوع حساب) -->
پست شماره 5
Function IsAdmin() As Boolean
If Len(CurrentUserName) > 0 Then
Return FirstForm.UsersTableAdapter1.GetUserTypeby(Current UserName)
Exit Function
ElseIf Len(CurrentUserName) = 0 Then
Return True
Exit Function
End If
Return False
End Function
تنظيمات نحوه دسترسي كاربران عادي در Application Settings ذخيره ميشه كه كنترل اين تنظيمات در بخشي از برنامه به نام Settings (تنظيمات) بر عهده كاربراني است كه دسترسي كامل به اطلاعات دارند
بالفرض مثال ويرايش اطلاعات با عنوان DisableModifyInformation در ApplicationSettings با نوع داده Boolean براي دسترسي محدود ارائه داديم
كه مي شود اين
IF IsAdmin = False Then
ModifyButton.Enabled = Not My.Settings.DisableModifyInformation
End If
اين براي زماني است كه كاربر پنجره مديريت اطلاعات را باز كرده و يا تازه مي كند
اما براي زماني كه مي خواهيم كليد فعال باشد و كاربر كليك كند:
IF IsAdmin = False Then
If My.Settings.DisableModifyInformation = True
Msgbox( "You cant Access this option via this User Account: " + CurrentUserName$,Exclumation)
Exit Sub
End If
End If
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
من با تقاسیر زیاد چیزی دستگیرم نشد.
اما من می خوام این کارو کنم:
مثلا فرض بکن که یه برنامه دو جور کاربر داره :
1- کاربر معمولی(تنها کاری که می تونه بکنه جست و جوه)
2- کاربر مدیر (همه ی عملیات رو می تونه انجام بده)
حالا یه یه نفر رو می خوان بعنوان کاربر جدید وارد بانک بشه
اگر کاربر معمولی باشه مفدار 1 ذخیره میشه.
اگر کاربر مدیر باشه مقدار 2 ذخیره بشه.
===========================================
کاربری می خواد وارد سیستم بشه:
باید مشخص بکنه که با چه USER وارد سیستم بشه
که این جوری تعریف می کنیم:
If Val = 1 Then 'کاربر معمولی
Button2.Enabled = False
ElseIf Val = 2 Then 'کاربر مدیر
Button2.Enabled = True
End If
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
در اصل فيلد IsAdmin مقدار 0 و 1 رو مي گيره كه اگر 0 شد حساب كاربري ايجاد شده عادي است در غير اينصورت حساب مديريتي است
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
نقل قول:
در اصل فيلد IsAdmin مقدار 0 و 1 رو مي گيره كه اگر 0 شد حساب كاربري ايجاد شده عادي است در غير اينصورت حساب مديريتي است
یعنی شما هم همین الگوریتم رو که من بالا گفتم رو استفاده کردید ؟؟؟
Public Class LoginForm
Public Property UserName() As String
Get
Return UserBox.Text
End Get
Set(ByVal value As String)
UserBox.Text = value
End Set
End Property
این قطع کد رو هم لطفا توضیح بدید
با تشکر زیاد:
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
نقل قول:
Public Property UserName() As String
Get
Return UserBox.Text
End Get
Set(ByVal value As String)
UserBox.Text = value
End Set
End Property
اين يك پراپرتي هستش كه مستقيما اطلاعات رو از يك TextBoxمي گيره و يا به اون ارائه مي ده و نيازي نيست پس از تائيد فرم مقداري رو به اين پراپرتي ارائه بديد
چون بهمراه فراخواني پراپرتي مقدار TextBox به اون ارائه داده مي شه
If LoginForm.ShowDialog(me) = Cancel Then Exit Sub
Msgbox( LoginForm.UserName)
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
نقل قول:
نوشته شده توسط
ROSTAM2
در اصل فيلد IsAdmin مقدار 0 و 1 رو مي گيره كه اگر 0 شد حساب كاربري ايجاد شده عادي است در غير اينصورت حساب مديريتي است
اگه میشه سورس شو بذارید لطفا
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
نقل قول: ايجاد حساب كاربري براي برنامه و Login شدن بآن
یادش بخیر یک قرن پیش چقد جوون و شاداب بودم و چه تاپیکایی ایجاد می کردم: تو این تابیک فقط امنیت رمز عبور باید رعایت می شد که این هم تاپیکی برای این مضمون(نپرس ک نمی دونم معنی مضمون چیه فقط شنیدم):
آموزش: تبدیل پسور کاربر به متن امن برای ذخیره در دیتابیس