Как настроить доступ пользователя с помощью 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). Это сделает видимыми только те элементы меню, которые авторизовал администратор (хранится в базе данных).

Другие вопросы по тегам