واضح آرشیو وب فارسی:سایت ریسک: چگونه میتوان چند کاربر و سطح دسترسی برای هر کدام در vb 6 ایجاد کرد soly1877 30 ارديبهشت 1388, 11:15سلام دوستان چطور میتوان در ویژوال بیسیک 6 در ابتدای ورود به برنامه نام کاربر و کلمه عبور پرسیده شود به طوریکه با توجه به هر کاربر سطح دسترسی برای او تعریف کرد . یعنی گزینه های خاصی برای آنها فعال باشد و بقیه گزینه ها غیر فعال و فقط مدیر به کلیه قسمت ها دسترسی داشته باشد . با تشکر . the_king 30 ارديبهشت 1388, 11:32سلام دوستان چطور میتوان در ویژوال بیسیک 6 در ابتدای ورود به برنامه نام کاربر و کلمه عبور پرسیده شود به طوریکه با توجه به هر کاربر سطح دسترسی برای او تعریف کرد . یعنی گزینه های خاصی برای آنها فعال باشد و بقیه گزینه ها غیر فعال و فقط مدیر به کلیه قسمت ها دسترسی داشته باشد . با تشکر . روتین مشخصی وجود نداره، کاملا وابسته به قابلیت ها و واسط کاربری برنامه ای است روی آن پیاده سازی می کنید. در کل نام کاربری و رمز عبور و یک کد سطح دسترسی (مثلا یک عدد بین 1 الی 5) را در جایی داخل یک فایل ذخیره خواهید کرد. هر زمان که کاربر با رمز عبور مربوطه وارد شد، بر اساس کد سطح دسترسی بعضی از دکمه ها یا توابع را غیر فعال خواهید کرد. یعنی یک شرط ساده داخل روتین ها وجود دارد که اگر مثلا Level برابر 3 بود، بجای چاپ گزارش پیغامی مبنی بر عدم دسترسی نمایش داده شود. soly1877 30 ارديبهشت 1388, 12:22ببخشید میشه با یه مثال برای من توضیح دهید . مرسی the_king 30 ارديبهشت 1388, 17:52ببخشید میشه با یه مثال برای من توضیح دهید . مرسی فرض کنیم یک کاربر user1 و یک کاربر user2 داریم که اولی با سطح دسترسی 1 مجوز چاپ گزارش را دارد و دومی با سطح دسترسی 2 مجوز اینکار را ندارد. همچنین فرض کنیم که دکمه Command 1 همان دکمه ای است که اگر رویش کلیک شود، عملیات چاپ گزارش قرار است صورت بگیرد. اصولا نام کاربری و رمز عبور در یک فایل یا بانک اطلاعاتی بصورت رمزی و کدگذاری شده ذخیره می شود تا امکان مشاهده آن به سادگی میسر نباشد، اما در این مثال ساده ما فرض می کنیم که این دو کاربر در داخل کد برنامه تعریف شده اند. فرض کنیم زمانی که یک کاربر قصد ورود به برنامه را داشت، بایستی نام کاربری اش را در کنترل TextBox ای با نام Text1 و رمز عبورش را در Text2 وارد کرده و روی دکمه Command 2 کلیک کند تا مجوز دسترسی به او داده شود. ما سطح دسترسی 0 را برای مهمان در نظر می گیریم که مجوز هیچ عملی را ندارد. پس در ابتدای کد های فرم، یک متغیر عمومی به نام Level از نوع عددی Long تعریف می کنیم که سطح دسترسی کاربر را مشخص می کند که مقدار پیشفرض اش در ابتدای برنامه 0 است (یعنی کاربر مهمان) : Dim Level As Long Private Sub Form_Load() Level = 0 End Sub حال فرض کنیم که تابع PrintReport همان تابعی است که عملیات چاپ گزارش را انجام می دهد، ما بایستی برای دکمه Command 1 کدی بنویسیم که اگر رویش کلیک شد و سطح دسترسی کاربر (Level) برابر 1 بود، آن تابع PrintReport را اجرا کند، وگرنه پیغام عدم سطح دسترسی کافی را نمایش دهد : Private Sub Command 1_Click() If Level = 1 Then PrintReport Else MsgBox "Insufficient permission to perform requested operation." End If End Sub اکنون برنامه در این شرایط همواره Level ای برابر با 0 را بکار می گیرد، پس بایستی برای دریافت نام کاربری و رمز عبور کد کلیک کردن روی دکمه Command 2 را هم اضافه کنیم : Private Sub Command 2_Click() If Text1.Text = "user1" And Text2.Text = "password 1" Then Level = 1 ElseIf Text1.Text = "user2" And Text2.Text = "password 2" Then Level = 2 Else MsgBox "Invalid username or password." End If End Sub reverce64 18 تير 1388, 15:02اين كار نياز به ديتا بيس دارد؟ the_king 18 تير 1388, 18:09اين كار نياز به ديتا بيس دارد؟ نه الزاما به مفهوم یک دیتابیس، چون خود اطلاعات دسترسی کاربران به تنهایی آنقدر از نظر حجم ناچیز و در عین حال از نظر امنیت، اهمیت دارد که بهتر است بصورت های غیر متعارف و غیر استاندارد ذخیره شود. اگر بحث امنیت را نادیده بگیریم، یک فایل ساده که با دستورهای Open و Close و Put و Get مدیریت شود، از نظر پیاده سازی بهتر است، اما هر چه روی کدگذاری اطلاعات داخلش تاکید کنیم، امنیت بهتری خواهد داشت. مثلا در داخل یک فایل باینری و بصورت کد گذاری شده تا خوانایی کمتری داشته باشد و به اصطلاح به سادگی لو نرود. دیتابیس های استاندارد برای نگهداری اطلاعات محرمانه نظیر رمز عبور و سطح دسترسی زیاد مناسب نیستند. هر چه نحوه ذخیره سازی خاص و غیر متعارف تر باشد، محافظت بهتری ارائه می کند.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1348]