PDA

View Full Version : سوال: ایجاد محدودیت در دسترسی به فرم ها



hackman
یک شنبه 12 خرداد 1392, 22:04 عصر
سلام من میخام تو نرم افزارم چند تا کاربر ایجاد کنم

و هر تعیین کنم که هر کدوم میتونن به کدوم فرمها دسترسی داشته باشن

چه جوری باید انجامش بدم ؟

aliasghar2
یک شنبه 12 خرداد 1392, 23:13 عصر
ساده ترین روشی که من به ذهنم می رسه اینه که جدولی از لیست فرم ها داشته باشی و یه جدول اعضا و یک جدول مابین اعضا و لیست فرما

توی این جدول مابین میشه تعریف کرد که هرفرد به کدوم فرم ها دسترسی داره بعد توی لود هر فرم این جدول رو چک کنی و ببنی رکوردی به ازای این فرم برای این فرد ثبت شده یا نه

c-sharp_South
یک شنبه 12 خرداد 1392, 23:16 عصر
سلام.
من یک نظر دارم.
توی فرم 1 مصلما نام کاربری و رمز عبور گرفته میشه و بعد به فرم 2 منتقل میشه.
توی فرم 2 یک label بزار که توش نام کاربری فرد ، از تکست باکس فرم قبلی بگیره.
بعدش توی رویداد های فرم2 از یک دستور شرطی استفاده کن که اگه متن لیبل برابر با مهدی بود این کار کن ، لگه برابر با حسین بود این کار کن و الا آخر
این یک روش خیلی خیلی ساده است :متفکر:

aliasghar2
یک شنبه 12 خرداد 1392, 23:21 عصر
من یک نظر دارم.
توی فرم 1 مصلما نام کاربری و رمز عبور گرفته میشه و بعد به فرم 2 منتقل میشه.
توی فرم 2 یک label بزار که توش نام کاربری فرد ، از تکست باکس فرم قبلی بگیره.
بعدش توی رویداد های فرم2 از یک دستور شرطی استفاده کن که اگه متن لیبل برابر با مهدی بود این کار کن ، لگه برابر با حسین بود این کار کن و الا آخر
این یک روش خیلی خیلی ساده است :متفکر:

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

saeed zarei
یک شنبه 12 خرداد 1392, 23:34 عصر
اگه دسترسی به فرم هاتون رو از طریق نوار منو فراهم کردین و یا کلا این جور موارد ، بهتر کاری رو که در پست 2 هست انجام بدید و نوع داده ای مربوط به هر منو رو که در جدول ذخیره کردید از نوع بولین قرار بدید و هنگام لود فرم اصلی اطلاعات این جدول رو برای یک کاربر خاص بیرون کشیده و برابر مقدار خصوصیت Enable گزینه مورد نظر در منو کنید . اینطوری کاربری که دسترسی به فرم A نداره در دیتابیس برای ستون اون فرم مقدار False ذخیره میشه و هنگام لود فرم نیز برابر خاصیت Enableقرار میگیره :

A.Enable = False;

mousa1992
دوشنبه 13 خرداد 1392, 00:17 صبح
سلام
تو جدول یوزرها یا همون کاربران نرم افزار فیلدهایی رو قرار میدی از نوع bit که دسترسی به هرکدوم از بخش هارو مشخص میکنه
مثلا CanCreateBackup - حالا اگه این فیلد true باشه کاربر میتونه backup تهیه کنه در غیر این صورت منع میشه و ...

موفق باشید

hackman
دوشنبه 13 خرداد 1392, 01:26 صبح
مرسی از همتون

ولی راحت ترین و سریع کار همینی هست که دوست عزیزمون آقا موسی فرمودن

بقیه ی روشها هم خوبه

همرو امتحان میکنم میگم کدوم بهتره :لبخند:

عاشقتونم :قلب:

hackman
دوشنبه 13 خرداد 1392, 01:49 صبح
راسی حالا که من برناممو نوشتم تموم شده چه جوری میتونم فرم اول برنامرو تغییر بدم و به جاش فرم لاگین رو بذارم ؟

مهدی هادیان2
دوشنبه 13 خرداد 1392, 07:49 صبح
بسم الله الرحمن الرحیم

راسی حالا که من برناممو نوشتم تموم شده چه جوری میتونم فرم اول برنامرو تغییر بدم و به جاش فرم لاگین رو بذارم ؟
با سلام
در فایل Program.cs
Application.Run(new فرمتون());
موفق باشید.

khokhan
دوشنبه 13 خرداد 1392, 14:14 عصر
مرسی از همتون

ولی راحت ترین و سریع کار همینی هست که دوست عزیزمون آقا موسی فرمودن

بقیه ی روشها هم خوبه

همرو امتحان میکنم میگم کدوم بهتره :لبخند:

عاشقتونم :قلب:

حالا که می خوای امتحان کنی این هم بزن تنگ همه اون راهها :لبخند:

توی جدولی که کاربران رو ثبت می کنی یه ستون با نام سطح دسترسی از نوع int ایجاد کن

بعد هنگام ثبت کاربران در فرم مربوطه سه تا رادیو باتن با عناوین 1 . مدیر 2 .کاربر ویژه 3 .کاربر عادی قرار بده و دستور اینسرت رو طوری تنضیم کن تا به جای رادیو باتن ها اعداد 1 تا 3 به ترتیب وبا توجه به انتخاب کاربر در ستون مذکور ثبت بشه

ودر مرحله آخر در فرم لاگین با یه دستور ساده وبا استفاده از switch می تونی کار بر رو به فرم مربوط به خودش راهنمایی کنی اینطوری


try
{
reader = cmd2.ExecuteReader();
var accessLevel = reader.GetOrdinal("access_level");
if (reader.Read())
{
myInt = reader.GetInt32(0);
}
reader.Close();
switch (myInt)
{
case 1:
this.Hide();
Form2 CarerHomePage = new Form2();
CarerHomePage.Show();
break;
case 2:
this.Hide();
Form3 AdministratorHome = new Form3();
AdministratorHome.Show();
break;
default:
MessageBox.Show("Invalid Login Credentials");
break;
}
}

danialafshari
دوشنبه 13 خرداد 1392, 15:16 عصر
http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1707265&viewfull=1#post1707265

hackman
دوشنبه 13 خرداد 1392, 20:24 عصر
راسی حالا که من برناممو نوشتم تموم شده چه جوری میتونم فرم اول برنامرو تغییر بدم و به جاش فرم لاگین رو بذارم ؟

danialafshari
سه شنبه 14 خرداد 1392, 01:03 صبح
سلام
فایل Program.cs رو باز کن
اونجا که نوشته :
Application.Run(new Form1());

به جای Form1 اسم فرم Login رو بزار
موفق باشی

hackman
دوشنبه 20 خرداد 1392, 14:40 عصر
دوستان یه کومک دیگه میخام

من فرم لاگینو درست کردم

ینی 2 تا فرم درست کردم که اولیش آی پی سرور رو میگیره و دومیش کاربر رو مشخص میکنه

حالا میخام بعد از این که اولین بار آی پی سرورو گرفت دیگه دفعه های بعد که برنامه باز میشه فرم آی پی باز نشه

این کدیه که نوشتم ولی فرم آی پی رو Hide نمیکنه
وقتی برنامه اجرا میشه هر 2 تا فرما بازن
هم فرم آی پی هم فرم لاگین
این کد فرم آی پی :


private void serverIP_frm_Load(object sender, EventArgs e)
{
try
{
SqlConnection cnn = new SqlConnection("Data Source= " + Properties.Settings.Default.ServerIP + ",1433 ;Network Library = DBMSSOCN ;Initial Catalog= Parking_Database ;user ID = parking ; Password = 123456789");
cnn.Open();

login_frm lgn = new login_frm();
lgn.Show();
cnn.Close();

}
catch (Exception)
{

}
}

private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection cnn = new SqlConnection("Data Source= " + serverIP_txtBox.Text + ",1433 ;Network Library = DBMSSOCN ;Initial Catalog= Parking_Database ;user ID = parking ; Password = 123456789");
cnn.Open();
Properties.Settings.Default.ServerIP = serverIP_txtBox.Text;
cnn.Close();
this.Hide();
login_frm lgn = new login_frm();
lgn.Show();
}
catch (Exception)
{
MessageBox.Show("مشخصات سرور صحیح نیست","error",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}