PDA

View Full Version : سطح دسترسي در برنامه هاي كاربردي



saba~h
جمعه 08 خرداد 1388, 21:11 عصر
با سلام خدمت دوستان برنامه نويس
من در حال نوشتن يك برنامه كاربردي با vb.net وsql2000 هستم سوال من در مورد لوگين و سطح دسترسي ها ي كاربران است
من مي خوا م كاربري به عنوان مدير ايجاد كنم كه بتونه user ها رو خودش تعريف كنه وسطح دسترسي ها رو خودش به هر كاربر بده البته تعداد كاربران محدود ودر حد يك يا دو كاربر است به نظر شما چطوري مي تونم اين كارو انجام بدم براي اين كار از windows login استفاده كنم يا از sql server login من در Enterprise Manager اين كارو انجام ميدم و يعني هم لوگين تعريف مي كنم وهم user اما نمي دونم كه توي صفحه لوگين برنامه چطوري اين user ها رو معرفي كنم در ضمن مدير قادر به تغيير پسورد خود باشه من اين كارو به راحتي در webform انجام ميدم اما نمي دونم در application ها لوگين چطوري تعريف مي شه

majid_quds
جمعه 08 خرداد 1388, 21:58 عصر
سلام
آقا دمت گرم
مشکل منو گفتی
دوستان لطفاً راهنمای کنید و در صورت نمونه برنامه ، اونم بزارید

majid_quds
شنبه 09 خرداد 1388, 14:12 عصر
:گریه:آقایون و خانم ها چی شد
چرا کسی جواب نمی ده :گریه::گریه::گریه::گریه::گریه: :گریه::گریه::گریه:

saba~h
یک شنبه 10 خرداد 1388, 08:11 صبح
با سلام خدمت آقاي majid_quds از اين كه شما هم دنباي جواب سوال من بودين ممنون فكر نمي كنم غير از من وشما اينجا كسي به اين موضوع علاقه اي داشته باش در هر صورت اگر همچنان دنبال جواب هستين من جوابش رو خودم فهميدم اگر دوست داري بگوكه به ايميت بفرستم

morteza_261
یک شنبه 10 خرداد 1388, 14:26 عصر
دوستان عزیز در این مورد بارها بحث شده
شما با جستجو میتونید پیدا کنید جوابتون رو
بخاطر همین هست که کسی جوابی نمیده

majid_quds
شنبه 30 خرداد 1388, 12:04 عصر
آقا سلام
من چاکرتم
بفرست.اگه همین جا باشه بهتره.سورس بدی که ممنون میشم
majid_quds1@yahoo.com

toopak
شنبه 30 خرداد 1388, 12:55 عصر
سلام دوستان
این کار خیلی ساده هستش
من خودم برای پروژه دانشگاه یک نرم افزار اتوماسیون تاکسی سرویس نوشتم که توش یه قسمت برای دسترسی اعضا مشخص کردم که الان یکم توضیح میدم و شما خودتون دست به کار بشید
به طور کلی این فرم مورد نظر من برای اضافه کردن عضو به مجموعه اعضای کاربر برنامم هست که با توجه به نیازم تعیین کردم
حالا شما ممکنه گزینه های کمتر یا بیشتری مد نظرتون باشه

http://barnamenevis.org/forum/attachment.php?attachmentid=32108&stc=1&d=1245484187


از طرفی موازی با این گزینه هام توی جدول فیلدهایی با دیتای yes/no دارم که نشون دهنده فعال یا غیر فعال بودن هر کدوم از خصوصیات هستن

http://barnamenevis.org/forum/attachment.php?attachmentid=32111&stc=1&d=1245484187

حالا تو کلید ایجاد کاربری یه کد نوشتم که در زیر میتونید ببینید



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text = "" Then
MsgBox("لطفا نام و نام خانوادگی را وارد نمایید", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "خطا")
TextBox1.Focus()
ElseIf TextBox2.Text = "" Then
MsgBox("لطفا نام کاربری را وارد نمایید", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "خطا")
TextBox2.Focus()
ElseIf TextBox3.Text = "" Then
MsgBox("لطفا رمز عبور را وارد نمایید", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "خطا")
TextBox3.Focus()
ElseIf TextBox4.Text = "" Then
MsgBox("لطفا تکرار رمز عبور را وارد نمایید", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "خطا")
TextBox4.Focus()
ElseIf TextBox4.Text <> TextBox3.Text Then
MsgBox("رمز عبور و تکرار رمز عبور با هم یکسان نمیباشد", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "خطا")
TextBox4.Focus()
Else

Dim cmdsql As New OleDbCommand
Dim inssql As String
cmdsql.Connection = con
inssql = "SELECT * FROM tbuser where uname= '" & TextBox2.Text & "'"
cmdsql.Connection = con
cmdsql.CommandText = inssql
Dim DR As OleDbDataReader
DR = cmdsql.ExecuteReader
DR.Read()
If DR.HasRows = True Then
DR.Read()
MsgBox("این نام کاربری قبلا به ثبت رسیده است")
Else

Dim inssql1 As String
Dim cmdsql1 As New OleDbCommand
inssql1 = "INSERT INTO tbuser(uname,upass,name,ins,del,rep,mon,udb,active ,um)VALUES('" & TextBox2.Text & "','" & TextBox3.Text & "','" & TextBox1.Text & "','" & CheckBox1.CheckState & "','" & CheckBox2.CheckState & "','" & CheckBox3.CheckState & "','" & CheckBox4.CheckState & "','" & CheckBox5.CheckState & "','" & CheckBox6.CheckState & "','" & CheckBox7.CheckState & "')"
cmdsql1.Connection = con
cmdsql1.CommandText = inssql1
cmdsql1.ExecuteNonQuery()
MsgBox("کاربر جدید با موفقیت ثبت شد", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "پیغام")
Call empty()
Call free()
End If
بعد از اینکه شما این کار رو انجام دادید،یعنی کاربر اضافه کردید باید از یه جایی کاربر رو به خصوصیات محدود کنید
که اون همون صفحه login میشه

http://barnamenevis.org/forum/attachment.php?attachmentid=32109&stc=1&d=1245484187

البته من از قبل به تعداد خصوصیاتی که تو قسمت ایجاد کاربر جدید checkbox داشتم،اینجا هم دارم ،اما برای اینکه معلوم نشه پایین فرمم قرار دادم که میتونی ببینی


http://barnamenevis.org/forum/attachment.php?attachmentid=32110&stc=1&d=1245484187

و کد ورود به صورت زیر شد



Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If TextBox2.Text = "" Then
MsgBox("لطفا نام کاربری را وارد نمایید", , "هشدار")
ElseIf TextBox1.Text = "" Then
MsgBox("لطفا رمز عبور را وارد نمایید", , "هشدار")
Else
Dim cmdsql As New OleDbCommand
Dim inssql As String
cmdsql.Connection = con
inssql = "SELECT * FROM tbuser where uname= '" & TextBox2.Text & "' and upass= '" & TextBox1.Text & "'"
cmdsql.Connection = con
cmdsql.CommandText = inssql
Dim DR As OleDbDataReader
DR = cmdsql.ExecuteReader
DR.Read()
If DR.HasRows = True Then
Dim a As String
a = DR("name")
CheckBox1.Checked = DR("ins")
CheckBox2.Checked = DR("del")
CheckBox3.Checked = DR("rep")
CheckBox4.Checked = DR("mon")
CheckBox5.Checked = DR("udb")
CheckBox6.Checked = DR("active")
CheckBox7.Checked = DR("um")


If CheckBox6.Checked = False Then

MsgBox("دسترسی شما توسط مدیر غیر فعال شده است", , "")

Else
SaveSetting("taxi", "setting", "taxiop", a)
Me.Visible = False
frm_startup.ToolStripStatusLabel3.Text = "| نام اپراتور وارد شده: " + GetSetting("taxi", "setting", "taxiop", "")

If CheckBox1.Checked = False Then
frm_startup.انجامسرویسToolStripMenuItem. Enabled = False
frm_startup.بازگشتازسرویسToolStripMen uItem.Enabled = False
frm_startup.رزروسرویسToolStripMenuItem.En abled = False
frm_startup.حضوروغیابToolStripMenuItem.En abled = False
frm_startup.اضافهکردنمسیرToolStripMen uItem.Enabled = False
frm_startup.ویرایشمسیرToolStripMenuItem. Enabled = False
frm_startup.اضافهکردنمشترکToolStripM enuItem.Enabled = False
frm_startup.اضافهکردنرانندهToolStri pMenuItem.Enabled = False
frm_startup.ویرایشرانندهToolStripMenuI tem.Enabled = False
frm_startup.لغورزروToolStripMenuItem.Enable d = False
End If
If CheckBox2.Checked = False Then
frm_startup.خذفمسیرToolStripMenuItem.Enable d = False
End If
If CheckBox3.Checked = False Then
frm_startup.لیستToolStripMenuItem.Enabled = False
frm_startup.لیستمشترکینToolStripMenuIte m.Enabled = False
frm_startup.لیسترانندههاToolStripMenuI tem.Enabled = False
frm_startup.لیستمسیرهاToolStripMenuItem. Enabled = False
frm_startup.جستجویمشترکToolStripMenuIte m.Enabled = False
frm_startup.درآمدرانندگانآژانسTo olStripMenuItem.Enabled = False
frm_startup.درآمدآژانسToolStripMenuItem. Enabled = False
frm_startup.جزئیاتسرویسهاToolStripMen uItem.Enabled = False
End If
If CheckBox4.Checked = False Then
frm_startup.تسویهحسابرانندهToolStri pMenuItem.Enabled = False
End If
If CheckBox5.Checked = False Then
frm_startup.استفادهToolStripMenuItem.Enable d = False
frm_startup.ایجادToolStripMenuItem.Enabled = False
frm_startup.پشتیبانگیریToolStripMenuIte m.Enabled = False
End If


If CheckBox7.Checked = False Then
frm_startup.افزودنکاربرToolStripMenuIte m.Enabled = False
frm_startup.ویرایشکاربرToolStripMenuIte m.Enabled = False
End If

frm_startup.Show()
End If
Else
MsgBox("نام کاربری یا رمز عبور (ویا هر دو) اشتباه میباشد", , "هشدار")
End If
End If
End Sub

حالا قسمت بالا اینه که اگر چک باکس بعد از اینکه نام کاربری و رمز عبور وارد شد تیک نداشت
توی برنامه منوهایی که مربوط به اون دسته میشه رو enable رو FALSE میکنه که نشه روش کلیک کرد و در حقیقت غیر قابل دسترسی میشه
امیدوارم تونسته باشم کمک کنم