فرم ورود حرفه ای در سی شارپ

فرم ورود حرفه ای در سی شارپ
توی پست قبلی ما اومدیم یه فرم ورود ساده رو با دیتابیس SQL ساختیم.
تو این ویدیو آموزشی اومدیم فرم رو کمی حرفه ای تر کردیم.
فرض می کنیم ما یه نرم افزار داریم برای فروشگاه که همه افراد فروشگاه اعم از حسابدار، انباردار، فروشنده، مدیر و… از اون استفاده می کنند.
از لحاظ امنیتی این درست نیست که دسترسی به تمام بخش های نرم افزار برای همه افراد فعال باشه.
برای رفع این مشکل باید چکار کنیم؟
آیا می تونیم برای هر بخش مجزا نرم افزاری تهیه کنیم؟ از لحاظ مالی ، زمانی و همینطور امنیت اطلاعات کار عقلانه ای نیست.
پس راه حل چیه؟
یه راه حل اینه که بیایم برای افرادی که از سیستم استفده می کنند سطح دسترسی تعریف کنیم و دسترسی ها را برای هر بخش محدود کنیم.
در این ویدیو آموزشی بصورت ساده آموزش دادم که چجوری این کار رو انجام بدین.
ابتدا یه دیتابیس و یه جدول کاربر در SQL ساختیم.

یه فیلد به اسم rol داریم که قراره نقش کاربری هر کاربر رو مشخص کنه.
تو مرحله بعدی به سراغ کدها رفتیم. در این پروژه دو فرم داریم که در فرم اول کاربر با نام کاربری و پسور لاگین می کند و نقش کاربری او گرفته می شود.
کدهای فرم اول رو اینجا می ذارم براتون.
private void button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(“Data Source=.;Initial Catalog=library;Integrated Security=True;”);
SqlDataAdapter da = new SqlDataAdapter(“select * from Table_user where username='” + textBox1.Text + “‘ and password='” + textBox2.Text + “‘”, con);
DataTable dt = new DataTable();
da.Fill(dt);
if (dt.Rows[0][3].ToString() == “admin”)
{
Program.rol = “admin”;
Form2 frm = new Form2();
frm.ShowDialog();
}
else
{
Program.rol = “hesab”;
Form2 frm = new Form2();
frm.ShowDialog();
}
}
در اینجا ابتدا یه کانکشن برای ارتباط با دیتابیس می زنیم و سپس یه کوئری داریم که با توجه به نام کاربری و پسورد اطلاعات کاربر رو میگیره.
dt.Rows[0][3].ToString()
این خط کد در واقع فیلد rol ما هست که چک میکنه کاربری که لاگین کرده چه نقش کاربری دارد.
برای اینکه بتونیم نقش کاربری رو بصورت عمومی دریافت کنیم و در همه فرم ها به آن دسترسی داشته باشیم یه فیلد سراسری تعریف میکنیم. در program.cs

و سپس به سراغ فرم دوم می رویم. در فرم دوم دو دکمه ساختیم که قراره دسترسی هر دو برای مدیری فروشگاه آزاد باشه ولی حسابدار فقط بتونه به یکی از فرم ها دسترسی داشته باشه.
کدهای فرم 2
private void button1_Click(object sender, EventArgs e)
{
if(Program.rol==”admin”|| Program.rol == “hesab”)
{
MessageBox.Show(“you can access”, “ACCESS”);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (Program.rol == “admin”)
{
MessageBox.Show(“you can access”, “ACCESS”);
}
else
{
MessageBox.Show(“you can not access”, “error”);
}
}
}
*اگر کیفیت صدای فیلم در آپارات خوب نیست، فیلم را دانلود کرده و با نرم افزارهایی مانند kmplayer ببینید.*
پاسخی بگذارید