Как настроить доступ пользователя с помощью toolStripMenueItem в C# WinForm
Я хочу добавить в Мой проект, что администратор может установить контроль доступа для пользователя.
Предположим, что администратор может выбрать имя пользователя и имя модуля и сохранить его в базе данных.
Когда пользователь успешно вошел в систему, он может показать только определенный toolstripMenueItem, который добавлен администратором.
Но я понятия не имею, как это сделать.
Я просто добавляю учетные данные пользователя и имя модуля администратором. и когда пользователь пытается войти, я извлекаю это имя элемента управления в переменную строкового типа и пытаюсь сделать это следующим образом.
public void AccessControl()
{
SqlConnection conn = new SqlConnection("Data Source=MYSOFTIT-05-PC\\SQLEXPRESS;Initial Catalog=Point_Of_Sale;Integrated Security=True");
conn.Open();
SqlCommand scmd = new SqlCommand("SELECT Control FROM Roll WHERE Email = 'taherak17@gmail.com'; ", conn);
SqlDataAdapter dataAdapter = new SqlDataAdapter(scmd);
DataTable dt = new DataTable();
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
SqlDataReader myReader = null;
myReader = scmd.ExecuteReader();
while (myReader.Read())
{
var a = (myReader[0].ToString());
}
conn.Close();
}
private void Login_Load(object sender, EventArgs e)
{
AccessControl();
}
Но поразило, как я определяю ToolStripMenuItem включен или отключен в соответствии со значением базы данных? Это мой интерфейс, и определенные пункты меню отключены или включены.
1 ответ
Сохраните имена ToolStripMenuItem в базе данных, когда администратор авторизует модули. Сохраните эти пункты меню скрытыми по умолчанию. Затем загрузите имена из вашего запроса, например, в массив. Затем при загрузке родительской формы сделайте это.
for (int i = 0; i < menuItems.Length; i++)
{
menuStrip.Items[menuItems[i]].Visible= true;
}
Здесь menuItems - это строковый массив, который содержит имена ToolStripMenuItem из вашей базы данных. и menuStrip - это ваш System.Windows.Forms.MenuStrip, который содержит ToolStripMenuItem(s). Это сделает видимыми только те элементы меню, которые авторизовал администратор (хранится в базе данных).