من از این روش استفاده میکنم :
public static int userCode = 0;
public static string userName = string.Empty;
public static bool userAdmin = false;
public static bool userActive = false;
//public static SqlConnection MyConnection = new SqlConnection("Data Source=172.21.69.10;Initial Catalog=Boudget;Persist Security Info=True;User ID=sa;Password=9960984");
public static SqlConnection MyConnection = new SqlConnection(@"Data Source=BABAK-PC\SQLEXPRESS;Initial Catalog=Boudget;Integrated Security=True");
public static SqlDataAdapter da;
public static SqlDataReader dr;
public static SqlCommand cmd;
public static string sqlString = string.Empty;
public static bool accessMenu(string menuName)
{
if (userAdmin)
{
return true;
}
if (MyConnection.State==System.Data.ConnectionState.Open)
{
MyConnection.Close();
}
sqlString = "select * from tblUsers where (UserCode=" + userCode + ") AND " + menuName + " =1 ";
cmd = new SqlCommand("select * from tblUsers where (UserCode=" + userCode + ") AND " + menuName + " =1", MyConnection);
MyConnection.Open();
dr = cmd.ExecuteReader();
if (dr.Read())
{
return true;
}
else
{
MessageBoxFarsi.Show("کاربر مورد نظر دسترسی ندارد", "خطا در دسترسی", MessageBoxFarsiButtons.OK, MessageBoxFarsiIcon.Error);
return false;
}
در کد بالا MenuName در جدول دسترسی وجود داره و به ازای هر ایتمی یا قسمتی که میخواین دسترسی بدین باید اسم اون رو در دیتا بیس براش فیلد از نوع bit ایجاد بکنید